Much of the time, I've found that we want the more-specified routes to match first, leaving the more generally specified routes to only match if there isn't one more specifically specified.
In other words, no matter where the route is registered, the second route should always match if it can, and the first should only route if the second can't.
As for your initial question, I would say that you could go either way, as long as the library is consistent about the behavior, and that behavior is clearly documented up front. That said, what you're suggesting makes sense. Just make sure your documentation is very clear that that is the effect.
"Explicit is better than implicit." At least when it comes to routing...