Sorry to rock the boat a little, but I've been thinking about this patch and had an idea I wanted to run by you. If backwards-compatibility were not a concern, would hook signatures be modified to look something like the following?

```python
def my_hook(req, resp, resource, params):
    pass
```

If so, one way to do that, and also retain backwards-compatibility with existing hooks, would be to inspect the function at decoration time, and then return a different version of ```do_before``` depending on whether ```action``` accepts 3 params or 4.

What do you think about that approach?