Class RoutingDsl

This DSL matches requests based on method and a path pattern, and is able to extract up to
three parameters out of the path pattern to pass into lambdas.

The passed in lambdas may optionally declare the types of the input parameters. If they don't,
the JVM will infer a type of Object, but the parameters themselves are passed in as Strings.
Supported types are java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double,
java.lang.Boolean, and any class that extends play.mvc.PathBindable. The router will attempt to
decode parameters using a PathBindable for each of those types, if it fails it will return a 400
error.

The path pattern supports three different types of parameters, path segment parameters, prefixed
with :, full path parameters, prefixed with *, and regular expression parameters, prefixed with $
and post fixed with a regular expression in angled braces.