diff --git c/core/modules/path/lib/Drupal/path/Form/PathEditForm.php w/core/modules/path/lib/Drupal/path/Form/PathEditForm.php
new file mode 100644
index 0000000..132ecdf
--- /dev/null
+++ w/core/modules/path/lib/Drupal/path/Form/PathEditForm.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\path\Form\PathEditForm.
+ */
+
+namespace Drupal\path\Form;
+
+use Drupal\Core\Form\FormBase;
+
+/**
+ * Builds the form to add and edit path aliases.
+ */
+class PathEditForm extends FormBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormID() {
+    return 'path_edit_form';
+  }
+
+  /**
+   * Wraps path_admin_form().
+   */
+  public function buildForm(array $form, array &$form_state, $pid = NULL) {
+    form_load_include($form_state, 'admin.inc', 'path');
+    if ($pid != NULL) {
+      $path_alias = path_load($pid);
+      return path_admin_form($form, $form_state, $path_alias);
+    }
+    return path_admin_form($form, $form_state);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validateForm(array &$form, array &$form_state) {
+    return path_admin_form_validate($form, $form_state);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, array &$form_state) {
+    return path_admin_form_submit($form, $form_state);
+  }
+
+}
diff --git c/core/modules/path/path.module w/core/modules/path/path.module
index aeec091..427018e 100644
--- c/core/modules/path/path.module
+++ w/core/modules/path/path.module
@@ -69,10 +69,7 @@ function path_menu() {
   );
   $items['admin/config/search/path/edit/%path'] = array(
     'title' => 'Edit alias',
-    'page callback' => 'path_admin_edit',
-    'page arguments' => array(5),
-    'access arguments' => array('administer url aliases'),
-    'file' => 'path.admin.inc',
+    'route_name' => 'path.edit',
   );
   $items['admin/config/search/path/delete/%path'] = array(
     'title' => 'Delete alias',
@@ -80,10 +77,8 @@ function path_menu() {
   );
   $items['admin/config/search/path/add'] = array(
     'title' => 'Add alias',
-    'page callback' => 'path_admin_edit',
-    'access arguments' => array('administer url aliases'),
+    'route_name' => 'path.add',
     'type' => MENU_LOCAL_ACTION,
-    'file' => 'path.admin.inc',
   );
 
   return $items;
diff --git c/core/modules/path/path.routing.yml w/core/modules/path/path.routing.yml
index 44f1fdf..0789637 100644
--- c/core/modules/path/path.routing.yml
+++ w/core/modules/path/path.routing.yml
@@ -4,3 +4,17 @@ path.delete:
     _form: '\Drupal\path\Form\DeleteForm'
   requirements:
     _permission: 'administer url aliases'
+
+path.edit:
+  pattern: 'admin/config/search/path/edit/{pid}'
+  defaults:
+    _form: '\Drupal\path\Form\PathEditForm'
+  requirements:
+    _permission: 'administer url aliases'
+
+path.add:
+  pattern: 'admin/config/search/path/add'
+  defaults:
+    _form: '\Drupal\path\Form\PathEditForm'
+  requirements:
+    _permission: 'administer url aliases'
