diff --git a/cookbook/routing/index.rst b/cookbook/routing/index.rst
index 7c96c4f40a3..e1d0e7e4063 100644
--- a/cookbook/routing/index.rst
+++ b/cookbook/routing/index.rst
@@ -8,3 +8,4 @@ Routing
slash_in_parameter
redirect_in_config
method_parameters
+ service_container_parameters
diff --git a/cookbook/routing/service_container_parameters.rst b/cookbook/routing/service_container_parameters.rst
new file mode 100644
index 00000000000..1a09de90d79
--- /dev/null
+++ b/cookbook/routing/service_container_parameters.rst
@@ -0,0 +1,102 @@
+.. index::
+ single: Routing; _service_container_parameters
+
+How to use Service Container parameters in your routes
+======================================================
+
+.. versionadded:: 2.1
+ This feature was added in Symfony 2.1
+
+Sometimes you may find useful to make some parts of your routes
+globally configurable. For instance, if you build an internationalized
+site, you'll probably start with one or two locales. Surely you'll
+add requirements to avoid a user specify a locale other than those you
+support, or simple to increase the power of your routes.
+
+Suppose that you have a lot of routes and you want to add yet another locale
+to your application. If you hardcode the requirements directly in your code,
+then you'll need to search everywhere and change the requirements.
+
+Then, why not use a configurable parameter, defined in the Service Container
+and make your life easier?
+
+Here you have an example on how to make the ``_locale`` of your routes configurable.
+
+.. configuration-block::
+
+ .. code-block:: yaml
+
+ contact:
+ pattern: /{_locale}/contact
+ defaults: { _controller: AcmeDemoBundle:Main:contact }
+ requirements:
+ _locale: %acme_demo.locales%
+
+ .. code-block:: xml
+
+
+
+
+
+
+ AcmeDemoBundle:Main:contact
+ %acme_demo.locales%
+
+
+
+ .. code-block:: php
+
+ use Symfony\Component\Routing\RouteCollection;
+ use Symfony\Component\Routing\Route;
+
+ $collection = new RouteCollection();
+ $collection->add('contact', new Route('/{_locale}/contact', array(
+ '_controller' => 'AcmeDemoBundle:Main:contact',
+ ), array(
+ '_locale' => '%acme_demo.locales%',
+ )));
+
+ return $collection;
+
+Easy like that, then simply define the ``acme_demo.locales`` parameter in your container.
+
+You can also define patterns which use parameters defined in the Service Container.
+
+.. configuration-block::
+
+ .. code-block:: yaml
+
+ some_route:
+ pattern: /%acme_demo.parameter_name%
+ defaults: { _controller: AcmeDemoBundle:Main:index }
+
+ .. code-block:: xml
+
+
+
+
+
+
+ AcmeDemoBundle:Main:index
+
+
+
+ .. code-block:: php
+
+ use Symfony\Component\Routing\RouteCollection;
+ use Symfony\Component\Routing\Route;
+
+ $collection = new RouteCollection();
+ $collection->add('some_route', new Route('/%acme_demo.parameter_name%', array(
+ '_controller' => 'AcmeDemoBundle:Main:contact',
+ )));
+
+ return $collection;
+
+.. note::
+ You can escape a parameter by doubling the ``%``, e.g. ``/%%acme_demo.parameter_name%%``
+