Make reverse routes always use the first matching route

Fixes #3050. The previous way of removing the extra routes would prioritize the last matching route as opposed to the first one. Now it should work the same as in 2.2, but without the warning.
I've just cut 2.3.1, found this in a smoke test. I don't think it's a big enough regression to warrant immediately cutting a new release - it just means that at random, the a less specific route might be chosen, resulting in a cosmetically different URL - the URL produced will still cause the same action to be invoked.  What do you think?