diff --git a/core/core.services.yml b/core/core.services.yml
index 55d5b34..b7a55d8 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -275,8 +275,8 @@ services:
     tags:
       - { name: route_enhancer, priority: 20 }
       - { name: legacy_route_enhancer, priority: 20 }
-  route_enhancer.entity_form:
-    class: Drupal\Core\Entity\Enhancer\EntityFormEnhancer
+  route_enhancer.entity:
+    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
     arguments: ['@content_negotiation']
     tags:
       - { name: route_enhancer, priority: 15 }
diff --git a/core/lib/Drupal/Core/Entity/Controller/EntityListController.php b/core/lib/Drupal/Core/Entity/Controller/EntityListController.php
index 4984bb0..0240923 100644
--- a/core/lib/Drupal/Core/Entity/Controller/EntityListController.php
+++ b/core/lib/Drupal/Core/Entity/Controller/EntityListController.php
@@ -45,6 +45,9 @@ public static function create(ContainerInterface $container) {
   /**
    * Provides the listing page for any entity type.
    *
+   * @param string $entity_type
+   *   The entity type to render.
+   *
    * @return array
    *   A render array as expected by drupal_render().
    */
@@ -53,3 +56,4 @@ public function listing($entity_type) {
   }
 
 }
+
diff --git a/core/lib/Drupal/Core/Entity/Enhancer/EntityFormEnhancer.php b/core/lib/Drupal/Core/Entity/Enhancer/EntityRouteEnhancer.php
similarity index 52%
rename from core/lib/Drupal/Core/Entity/Enhancer/EntityFormEnhancer.php
rename to core/lib/Drupal/Core/Entity/Enhancer/EntityRouteEnhancer.php
index b6739e0..1e55026 100644
--- a/core/lib/Drupal/Core/Entity/Enhancer/EntityFormEnhancer.php
+++ b/core/lib/Drupal/Core/Entity/Enhancer/EntityRouteEnhancer.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Core\Entity\Enhancer\EntityFormEnhancer.
+ * Contains \Drupal\Core\Entity\Enhancer\EntityRouteEnhancer.
  */
 
 namespace Drupal\Core\Entity\Enhancer;
@@ -14,17 +14,17 @@
 /**
  * Enhances an entity form route with the appropriate controller.
  */
-class EntityFormEnhancer implements RouteEnhancerInterface {
+class EntityRouteEnhancer implements RouteEnhancerInterface {
 
   /**
    * Content negotiation library.
    *
-   * @var \Drupal\CoreContentNegotiation
+   * @var \Drupal\Core\ContentNegotiation
    */
   protected $negotiation;
 
   /**
-   * Constructs a new \Drupal\Core\Entity\Enhancer\EntityFormEnhancer.
+   * Constructs a new \Drupal\Core\Entity\Enhancer\EntityRouteEnhancer.
    *
    * @param \Drupal\Core\ContentNegotiation $negotiation
    *   The content negotiation library.
@@ -37,8 +37,13 @@ public function __construct(ContentNegotiation $negotiation) {
    * {@inheritdoc}
    */
   public function enhance(array $defaults, Request $request) {
-    if (empty($defaults['_controller']) && !empty($defaults['_entity_form']) && $this->negotiation->getContentType($request) === 'html') {
-      $defaults['_controller'] = '\Drupal\Core\Entity\HtmlEntityFormController::content';
+    if (empty($defaults['_controller']) && $this->negotiation->getContentType($request) === 'html') {
+      if (!empty($defaults['_entity_form'])) {
+        $defaults['_controller'] = '\Drupal\Core\Entity\HtmlEntityFormController::content';
+      }
+      elseif (!empty($defaults['_entity_list'])) {
+        $defaults['_content'] = '\Drupal\Core\Entity\Controller\EntityListController::listing';
+      }
     }
     return $defaults;
   }
diff --git a/core/modules/block/custom_block/custom_block.routing.yml b/core/modules/block/custom_block/custom_block.routing.yml
index ac4ec99..cfe79c7 100644
--- a/core/modules/block/custom_block/custom_block.routing.yml
+++ b/core/modules/block/custom_block/custom_block.routing.yml
@@ -1,8 +1,7 @@
 custom_block_type_list:
   pattern: '/admin/structure/custom-blocks'
   defaults:
-    _content: '\Drupal\Core\Entity\Controller\EntityListController::listing'
-    entity_type: 'custom_block_type'
+    _entity_list: 'custom_block_type'
   requirements:
     _permission: 'administer blocks'
 
diff --git a/core/modules/config/tests/config_test/config_test.routing.yml b/core/modules/config/tests/config_test/config_test.routing.yml
index d939b30..b5cfff6 100644
--- a/core/modules/config/tests/config_test/config_test.routing.yml
+++ b/core/modules/config/tests/config_test/config_test.routing.yml
@@ -1,7 +1,6 @@
 config_test_list_page:
   pattern: '/admin/structure/config_test'
   defaults:
-    _content: '\Drupal\Core\Entity\Controller\EntityListController::listing'
-    entity_type: 'config_test'
+    _entity_list: 'config_test'
   requirements:
     _access: 'TRUE'
diff --git a/core/modules/contact/contact.routing.yml b/core/modules/contact/contact.routing.yml
index 4cbfff2..9c3ee6a 100644
--- a/core/modules/contact/contact.routing.yml
+++ b/core/modules/contact/contact.routing.yml
@@ -8,8 +8,7 @@ contact_category_delete:
 contact_category_list:
   pattern: '/admin/structure/contact'
   defaults:
-    _content: '\Drupal\Core\Entity\Controller\EntityListController::listing'
-    entity_type: 'contact_category'
+    _entity_list: 'contact_category'
   requirements:
     _permission: 'administer contact forms'
 
diff --git a/core/modules/picture/picture.routing.yml b/core/modules/picture/picture.routing.yml
index 408dd33..66a3689 100644
--- a/core/modules/picture/picture.routing.yml
+++ b/core/modules/picture/picture.routing.yml
@@ -1,8 +1,7 @@
 picture_mapping_page:
   pattern: '/admin/config/media/picturemapping'
   defaults:
-    _content: '\Drupal\Core\Entity\Controller\EntityListController::listing'
-    entity_type: 'picture_mapping'
+    _entity_list: 'picture_mapping'
   requirements:
     _permission: 'administer pictures'
 
diff --git a/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml
index fb49de3..0a7531d 100644
--- a/core/modules/user/user.routing.yml
+++ b/core/modules/user/user.routing.yml
@@ -36,8 +36,7 @@ user_account_settings:
 user_role_list:
   pattern: '/admin/people/roles'
   defaults:
-    _content: '\Drupal\Core\Entity\Controller\EntityListController::listing'
-    entity_type: 'user_role'
+    _entity_list: 'user_role'
   requirements:
     _permission: 'administer permissions'
 
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Routing/ViewsUIController.php b/core/modules/views_ui/lib/Drupal/views_ui/Routing/ViewsUIController.php
index 472b460..01d43f3 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Routing/ViewsUIController.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Routing/ViewsUIController.php
@@ -76,16 +76,6 @@ public static function create(ContainerInterface $container) {
   }
 
   /**
-   * Lists all of the views.
-   *
-   * @return array
-   *   The Views listing page.
-   */
-  public function listing() {
-    return $this->entityManager->getListController('view')->render();
-  }
-
-  /**
    * Lists all instances of fields on any views.
    *
    * @return array
diff --git a/core/modules/views_ui/views_ui.routing.yml b/core/modules/views_ui/views_ui.routing.yml
index f2046f6..772cc32 100644
--- a/core/modules/views_ui/views_ui.routing.yml
+++ b/core/modules/views_ui/views_ui.routing.yml
@@ -1,7 +1,7 @@
 views_ui.list:
   pattern: '/admin/structure/views'
   defaults:
-    _controller: '\Drupal\views_ui\Routing\ViewsUIController::listing'
+    _entity_list: 'view'
   requirements:
     _permission: 'administer views'
 
