diff --git a/core/modules/system/src/Form/ModulesListForm.php b/core/modules/system/src/Form/ModulesListForm.php
index 6d9cd88..1fa64f5 100644
--- a/core/modules/system/src/Form/ModulesListForm.php
+++ b/core/modules/system/src/Form/ModulesListForm.php
@@ -288,6 +288,7 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
           $request->attributes->set('_route_name', $module->info['configure']);
           $route_object = $this->routeProvider->getRouteByName($module->info['configure']);
           $request->attributes->set('_route', $route_object);
+          $request->attributes->add($route_parameters);
           $description = $this->titleResolver->getTitle($request, $route_object);
         }
 
diff --git a/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php b/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php
index d401e52..7f4f2d6 100644
--- a/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php
+++ b/core/modules/system/src/Tests/Form/ModulesListFormWebTest.php
@@ -38,6 +38,6 @@ public function testModuleListForm() {
     $this->assertResponse('200');
 
     // Check that system_test's configure link was rendered correctly.
-    $this->assertLinkByHref('configure/bar');
+    $this->assertFieldByXPath("//a[contains(@href, '/system-test/configure/bar') and @title='Bar.bar']");
   }
 }
diff --git a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
index 36a2c8f..0b9290b 100644
--- a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
+++ b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
@@ -91,4 +91,16 @@ public function shutdownFunctions($arg1, $arg2) {
     }
   }
 
+  /**
+   * Returns the title for system_test.info.yml's configure route.
+   *
+   * @param string $foo
+   *   Any string for the {foo} slug.
+   *
+   * @return string
+   */
+  public function configureTitle($foo) {
+    return 'Bar.' . $foo;
+  }
+
 }
diff --git a/core/modules/system/tests/modules/system_test/system_test.routing.yml b/core/modules/system/tests/modules/system_test/system_test.routing.yml
index cd070ac..520ba37 100644
--- a/core/modules/system/tests/modules/system_test/system_test.routing.yml
+++ b/core/modules/system/tests/modules/system_test/system_test.routing.yml
@@ -75,5 +75,7 @@ system_test.shutdown_functions:
 
 system_test.configure:
   path: '/system-test/configure/{foo}'
+  defaults:
+    _title_callback: '\Drupal\system_test\Controller\SystemTestController::configureTitle'
   requirements:
     _access: 'TRUE'
