The two singletons registered for IDownstreamRouteProvider,
DownstreamRouteFinder and DownstreamRouteCreator, were registered using
`TryAddSingleton`. This would cause DownstreamRouteFinder to be
instantiated and found but the "Try" made DownstreamRouteCreator not
registered.
This was noted in the following in `DownstreamRouteProviderFactory`:
```
_providers = provider.GetServices<IDownstreamRouteProvider>().ToDictionary(x => x.GetType().Name);
```
With the registration being done using `TryAddSingleton` only one
element was added to the dictionary. Changing this to `AddSingleton`
fixed this issue.
This was uncovered in an error on line 30 of
`DownstreamRouteProviderFactory`. The key for
`nameof(DownstreamRouteCreator)` did not exist causing an exception to
be thrown.