expand-routes should be a protocol; expand-routes should support map syntax
Merge branch 'map-routes'