diff --git a/core/modules/system/lib/Drupal/system/Plugin/Condition/RouteCondition.php b/core/modules/system/lib/Drupal/system/Plugin/Condition/RouteCondition.php
new file mode 100644
index 0000000..697eda8
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Plugin/Condition/RouteCondition.php
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * @file
+ * Contains Drupal\system\Plugin\Condition\RouteCondition
+ */
+
+namespace Drupal\system\Plugin\Condition;
+
+use Drupal\Core\Condition\ConditionPluginBase;
+
+/**
+ * Provides a 'Route' condition.
+ *
+ * @Condition(
+ *   id = "route",
+ *   label = @Translation("Route"),
+ *   context = {
+ *     "request" = {
+ *       "class" = "Symfony\Component\HttpFoundation\Request"
+ *     }
+ *   }
+ * )
+ */
+class RouteCondition extends ConditionPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildConfigurationForm(array $form, array &$form_state) {
+    $form['pages'] = array(
+      '#type' => 'textfield',
+      '#title' => $this->t('Route'),
+      '#default_value' => $this->configuration['route'],
+      '#description' => $this->t("Specify a route by it's unique key."),
+      '#required' => TRUE,
+    );
+    return parent::buildConfigurationForm($form, $form_state);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitConfigurationForm(array &$form, array &$form_state) {
+    $this->configuration['route'] = $form_state['values']['route'];
+    parent::submitConfigurationForm($form, $form_state);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function defaultConfiguration() {
+    return array('route' => '');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function evaluate() {
+    /* @var \Symfony\Component\HttpFoundation\Request $request */
+    $request = $this->getContextValue('request');
+    $route_name = $request->attributes->get('_route');
+    return $route_name == $this->configuration['route'];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function summary() {
+    return $this->t('Return true on the following route: @route', array('@route' => $this->configuration['route']));
+  }
+
+}
diff --git a/core/modules/system/lib/Drupal/system/Tests/Plugin/Condition/RouteConditionTest.php b/core/modules/system/lib/Drupal/system/Tests/Plugin/Condition/RouteConditionTest.php
new file mode 100644
index 0000000..bc0e006
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Tests/Plugin/Condition/RouteConditionTest.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * @file
+ * Contains Drupal\system\Tests\Plugin\Condition\RouteConditionTest
+ */
+
+namespace Drupal\system\Tests\Plugin\Condition;
+
+use Drupal\simpletest\KernelTestBase;
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Tests the route condition plugin.
+ */
+class RouteConditionTest extends KernelTestBase {
+
+  /**
+   * The condition plugin manager.
+   *
+   * @var \Drupal\Core\Condition\ConditionManager
+   */
+  protected $pluginManager;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('system', 'user', 'field');
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'Route Condition Plugin',
+      'description' => 'Tests that the Route Condition, provided by the system module, is working properly.',
+      'group' => 'Condition API',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->installSchema('system', array('sequences'));
+
+    $this->pluginManager = $this->container->get('plugin.manager.condition');
+  }
+
+  /**
+   * Test the route condition.
+   */
+  public function testConditions() {
+
+    // Test a route with no params matches.
+    $request = Request::create('/node/1');
+    $request->attributes->set('_route', 'node.view');
+
+    /* @var \Drupal\system\Plugin\Condition\RouteCondition $condition */
+    $condition = $this->pluginManager->createInstance('route');
+
+    $condition->setConfig('route', 'node.view')
+      ->setContextValue('request', $request);
+
+    $this->assertTrue($condition->execute(), 'A route with no params matches');
+    $this->assertEqual($condition->summary(), 'Return true on the following route: node.view', 'The condition summary matches for a route');
+
+
+    // Test a route doesn't match.
+    $request = Request::create('/fail/route');
+    $request->attributes->set('_route', 'fail.view');
+
+    $condition->setContextValue('request', $request);
+
+    $this->assertFalse($condition->execute(), 'A route does not match');
+
+  }
+}
