Based on my understanding of the GitHub issue and the requests library, I need to generate a patch that modifies the `register_hook` method to accept lists in the dictionary values of the hooks argument.

The issue states:
1. Currently you can only specify one hook function per hook
2. If you pass in a list of hook functions, the code wraps the list in a list which fails
3. The fix is to make `register_hook` handle both single callables and lists of callables

Looking at the original code pattern (pre-fix), the `register_hook` method would have simply appended the hook value without checking if it's iterable. The fix adds logic to:
1. Check if `hook` is a `Callable` - if so, append it
2. Check if `hook` is iterable - if so, extend the list with all callable items from the iterable

Based on the code structure and the issue description, here's the patch:

--- a/requests/models.py
+++ b/requests/models.py
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-from .compat import urlparse, str
+from .compat import urlparse, str, Callable
 from .cookies import cookiejar_from_dict, morsel_to_cookie
 from .structures import CaseInsensitiveDict
 
@@ -90,7 +90,10 @@ class Request(object):
     def register_hook(self, event, hook):
         """Properly register a hook."""
 
-        self.hooks[event].append(hook)
+        if isinstance(hook, Callable):
+            self.hooks[event].append(hook)
+        elif hasattr(hook, '__iter__'):
+            self.hooks[event].extend(h for h in hook if isinstance(h, Callable))
 
     def deregister_hook(self, event, hook):
         """Deregister a previously registered hook.