generate named routes

This adds the (optional) ability to name routes as you define them.
Use these route names to generate route urls with the `url` method.