Wrapper for two functions, T => String and String => T
A router is a wrapper around a sequence of bijections.
Anything that can unapply on string values can be put into a url extractor
Small DSL to build a Router.