Allow custom matchers

Allow users to specify there own matchers. A matcher should take a
request and return a response or None.