private Task PerformInitialRouting()
        {
            var assemblies = AdditionalAssemblies == null
                ? new[] { AppAssembly }
                : new[] { AppAssembly }.Concat(AdditionalAssemblies);

            Routes = RouteTableFactory.Create(assemblies);

            return(PerformNavigationAsync(isNavigationIntercepted: false)); // from render thread
        }
        private async Task RefreshLazyRouteTableAsync()
        {
            var createLazyRoutesTask = GetLazyRoutes(); // continue in render thread

            var assemblies = AdditionalAssemblies == null
                ? new[] { AppAssembly }
                : new[] { AppAssembly }.Concat(AdditionalAssemblies);

            var assemblyRoutes = RouteTableFactory.Create(assemblies);
            var lazyRoutes     = await createLazyRoutesTask;

            Routes = new RouteTable(assemblyRoutes.Routes.Concat(lazyRoutes.Routes).ToArray());

            await PerformNavigationAsync(isNavigationIntercepted : false); // from render thread
        }