diff --git a/core/lib/Drupal/Core/Routing/MatcherDumper.php b/core/lib/Drupal/Core/Routing/MatcherDumper.php
index 1d7cbb7..34d2b25 100644
--- a/core/lib/Drupal/Core/Routing/MatcherDumper.php
+++ b/core/lib/Drupal/Core/Routing/MatcherDumper.php
@@ -152,4 +152,12 @@ public function getRoutes() {
     return $this->routes;
   }
 
+  /**
+   * Flushes all routes.
+   */
+  public function flush() {
+    return $this->connection->truncate($this->tableName)
+      ->execute();
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php b/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php
index d4a464f..3eba1e3 100644
--- a/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php
+++ b/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php
@@ -23,4 +23,9 @@
    */
   public function addRoutes(RouteCollection $routes);
 
+  /**
+   * Flushes all routes.
+   */
+  public function flush();
+
 }
diff --git a/core/lib/Drupal/Core/Routing/RouteBuilder.php b/core/lib/Drupal/Core/Routing/RouteBuilder.php
index eebe414..8fe446a 100644
--- a/core/lib/Drupal/Core/Routing/RouteBuilder.php
+++ b/core/lib/Drupal/Core/Routing/RouteBuilder.php
@@ -103,6 +103,7 @@ public function rebuild() {
       return FALSE;
     }
 
+    $this->dumper->flush();
     $yaml_discovery = $this->getYamlDiscovery();
 
     foreach ($yaml_discovery->findAll() as $provider => $routes) {
