Router

Trie implementation + tests
Router using it + tests
Not the actual order, you could use named return values to help
(or not)