Add a mechanism for processing an exchange based on method within a handler.

Needs more test coverage, and also means we can dump some parts of the DSL.