A set of routes with different subroutes after a parameter overwrite previous routes causing mismatch.
In the BlazorRouteTests amend the code for MatchesTemplateWithParameters as follows:
[Fact]
public void MatchesTemplateWithParameters()
{
string[] templates =
{
"/Cats/{id}/Breed",
"/Cats/{id}",
"/Cats/{id}/Owner",
};
var target = new BlazorRoutes(templates);
Assert.True(target.Contains("cats/42"));
Assert.True(target.Contains("cats/42/owner"));
Assert.True(target.Contains("cats/42/breed"));
}
The first two tests pass but the second fails, because the last parameter route (owner) overwrites the prior one.