New router

Like the `ScalaBusMod` this can be used as a replacement for `RouteMatcher`. It should be more idiomatic to use than the `RouteMatcher`.
In my example above, recover is not correctly called. You need to wrap for/yield in a brackets or variable and then call recover on it.