Build a trie-based router. solve(routes, queries) registers each route then
runs each query, returning an array of { handler, params } | null.
Routes are ['GET /users/:id', 'POST /posts/:slug/comments'] (method + path).
Queries are 'GET /users/42'. handler is the original route string.
Sample tests