fix(router): allow optional trailing slash on routes - fixes #641

My tests are hosed locally (test runner exits early?), so I'm going to let travis have a go at the new functional tests. Manual testing looked fine.