Iterating over each RoutingEntry of a tenant takes long, we have more than 700 API paths, and can be avoided by using a hash map.
For a path without wildcards use the path as key, for example
For a path with a wildcard use the path until the last slash before the wildcard.
/a/d/ is the key for
/a/e/ is the key for
/a/ is the key for
For each tenant maintain a hash where each key points to a List<RoutingEntry>.
If there is a request for the path /a/b/f/g try these keys:
For n path segments there are only n+1 hash lookups.