diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 968192e..9eda6fc 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -979,6 +979,7 @@ function install_base_system(&$install_state) {
   // Enable the user module so that sessions can be recorded during the
   // upcoming bootstrap step.
   \Drupal::service('module_installer')->install(array('user'), FALSE);
+  \Drupal::service('router.builder')->rebuild();
 
   // Save the list of other modules to install for the upcoming tasks.
   // State can be set to the database now that system.module is installed.
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 34dbdc2..e9ca243 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -22,7 +22,9 @@
 use Drupal\Core\Theme\ThemeSettings;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Render\Element;
+use Drupal\Core\Url;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\Routing\Route;
 
 /**
  * @defgroup content_flags Content markers
@@ -1456,7 +1458,7 @@ function template_preprocess_page(&$variables) {
   }
 
   $variables['base_path']         = base_path();
-  $variables['front_page']        = \Drupal::url('<front>');
+  $variables['front_page']        = Url::fromUri('base://index.php')->toString();
   $variables['language']          = $language_interface;
   $variables['logo']              = theme_get_setting('logo.url');
   $variables['site_name']         = (theme_get_setting('features.name') ? String::checkPlain($site_config->get('name')) : '');
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandler.php b/core/lib/Drupal/Core/Extension/ModuleHandler.php
index c24b9f4..eb52772 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandler.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandler.php
@@ -161,7 +161,7 @@ public function isLoaded() {
    * {@inheritdoc}
    */
   public function getModuleList() {
-    return $this->moduleList;
+    return array_filter($this->moduleList);
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Routing/UrlGenerator.php b/core/lib/Drupal/Core/Routing/UrlGenerator.php
index 4657fdf..4db3e6b 100644
--- a/core/lib/Drupal/Core/Routing/UrlGenerator.php
+++ b/core/lib/Drupal/Core/Routing/UrlGenerator.php
@@ -21,6 +21,7 @@
 use Drupal\Core\PathProcessor\OutboundPathProcessorInterface;
 use Drupal\Core\RouteProcessor\OutboundRouteProcessorInterface;
 use Drupal\Core\Site\Settings;
+use Symfony\Component\Routing\Route;
 
 /**
  * Generates URLs from route names and parameters.
@@ -160,8 +161,13 @@ public function generate($name, $parameters = array(), $absolute = FALSE) {
   public function generateFromRoute($name, $parameters = array(), $options = array()) {
     $options += array('prefix' => '');
     $absolute = !empty($options['absolute']);
-    $route = $this->getRoute($name);
-    $this->processRoute($name, $route, $parameters);
+    if (!($name instanceof Route)) {
+      $route = $this->getRoute($name);
+      $this->processRoute($name, $route, $parameters);
+    }
+    else {
+      $route = $name;
+    }
 
     // Symfony adds any parameters that are not path slugs as query strings.
     if (isset($options['query']) && is_array($options['query'])) {
