diff --git a/core/composer.json b/core/composer.json
new file mode 100644
index 0000000..584ee0f
--- /dev/null
+++ b/core/composer.json
@@ -0,0 +1,11 @@
+{
+  "require": {
+    "symfony/class-loader": "2.1.*",
+    "symfony/dependency-injection": "2.1.*",
+    "symfony/event-dispatcher": "2.1.*",
+    "symfony/http-foundation": "2.1.*",
+    "symfony/http-kernel": "2.1.*",
+    "symfony/routing": "2.1.*",
+    "symfony/yaml": "2.1.*"
+  }
+}
diff --git a/core/composer.lock b/core/composer.lock
new file mode 100644
index 0000000..7616057
--- /dev/null
+++ b/core/composer.lock
@@ -0,0 +1,97 @@
+{
+    "hash": "75edc6935293d2a3307740173c91b3f1",
+    "packages": [
+        {
+            "package": "symfony/class-loader",
+            "version": "dev-master",
+            "source-reference": "c57e62c886899f8d88264efad23c857eb198dc09"
+        },
+        {
+            "package": "symfony/class-loader",
+            "version": "dev-master",
+            "source-reference": "c57e62c886899f8d88264efad23c857eb198dc09",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/dependency-injection",
+            "version": "dev-master",
+            "source-reference": "218ff74d4ef7261acbbcf1ff1704e30b85760b40",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/dependency-injection",
+            "version": "dev-master",
+            "source-reference": "218ff74d4ef7261acbbcf1ff1704e30b85760b40"
+        },
+        {
+            "package": "symfony/event-dispatcher",
+            "version": "dev-master",
+            "source-reference": "eb82542e8ec9506096caf7c528564c740a214f56",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/event-dispatcher",
+            "version": "dev-master",
+            "source-reference": "eb82542e8ec9506096caf7c528564c740a214f56"
+        },
+        {
+            "package": "symfony/http-foundation",
+            "version": "dev-master",
+            "source-reference": "5b1581418381f46679604fd19efc8b518f2390ae"
+        },
+        {
+            "package": "symfony/http-foundation",
+            "version": "dev-master",
+            "source-reference": "5b1581418381f46679604fd19efc8b518f2390ae",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/http-kernel",
+            "version": "dev-master",
+            "source-reference": "8160e6e1722cd0073152d01dc1464e2e23369484"
+        },
+        {
+            "package": "symfony/http-kernel",
+            "version": "dev-master",
+            "source-reference": "8160e6e1722cd0073152d01dc1464e2e23369484",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/routing",
+            "version": "dev-master",
+            "source-reference": "aec133671d79d530d09aa0b5ca4cea9e4ee4b274",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/routing",
+            "version": "dev-master",
+            "source-reference": "aec133671d79d530d09aa0b5ca4cea9e4ee4b274"
+        },
+        {
+            "package": "symfony/yaml",
+            "version": "dev-master",
+            "source-reference": "49ad500448c17a4b515c8f567dbb540af3cf41ef",
+            "alias-pretty-version": "2.1.x-dev",
+            "alias-version": "2.1.9999999.9999999-dev"
+        },
+        {
+            "package": "symfony/yaml",
+            "version": "dev-master",
+            "source-reference": "49ad500448c17a4b515c8f567dbb540af3cf41ef"
+        }
+    ],
+    "packages-dev": null,
+    "aliases": [
+
+    ],
+    "minimum-stability": "dev",
+    "stability-flags": [
+
+    ]
+}
diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 42de880..ba52360 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2836,14 +2836,13 @@ function drupal_classloader() {
   static $loader;
 
   if (!isset($loader)) {
-    // Include the Symfony ClassLoader for loading PSR-0-compatible classes.
-    require_once DRUPAL_ROOT . '/core/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+    // Load the Symfony namespaces for loading PSR-0-compatible classes.
+    require_once DRUPAL_ROOT . '/core/vendor/autoload.php';
 
     // @todo Use a cleaner way than variable_get() to switch autoloaders.
     switch (variable_get('autoloader_mode', 'default')) {
       case 'apc':
         if (function_exists('apc_store')) {
-          require_once DRUPAL_ROOT . '/core/vendor/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php';
           $loader = new ApcUniversalClassLoader('drupal.' . $GLOBALS['drupal_hash_salt']);
           break;
         }
@@ -2856,11 +2855,6 @@ function drupal_classloader() {
         break;
     }
 
-    // Register explicit vendor namespaces.
-    $loader->registerNamespaces(array(
-      // All Symfony-borrowed code lives in /core/vendor/Symfony.
-      'Symfony' => DRUPAL_ROOT . '/core/vendor',
-    ));
     // Register the Drupal namespace for classes in core as a fallback.
     // This allows to register additional namespaces within the Drupal namespace
     // (e.g., for modules) and avoids an additional file_exists() on the Drupal
diff --git a/core/vendor/.gitignore b/core/vendor/.gitignore
new file mode 100644
index 0000000..0feb165
--- /dev/null
+++ b/core/vendor/.gitignore
@@ -0,0 +1,14 @@
+# SimpleTest breaks with services1-1.php, so avoid adding it.
+symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php
+
+# Avoid using git submodules with Drupal's dependencies.
+symfony/class-loader/Symfony/Component/ClassLoader/.git
+symfony/dependency-injection/Symfony/Component/DependencyInjection/.git
+symfony/event-dispatcher/Symfony/Component/EventDispatcher/.git
+symfony/http-foundation/Symfony/Component/HttpFoundation/.git
+symfony/http-kernel/Symfony/Component/HttpKernel/.git
+symfony/routing/Symfony/Component/Routing/.git
+symfony/yaml/Symfony/Component/Yaml/.git
+
+# Composer adds a deprecated .composer folder, which we don't need.
+.composer
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php b/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
deleted file mode 100644
index fe29832..0000000
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * MemcacheSessionHandler.
- *
- * @author Drak <drak@zikula.org>
- */
-class MemcacheSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * Memcache driver.
-     *
-     * @var \Memcache
-     */
-    private $memcache;
-
-    /**
-     * Configuration options.
-     *
-     * @var array
-     */
-    private $memcacheOptions;
-
-    /**
-     * Key prefix for shared environments.
-     *
-     * @var string
-     */
-    private $prefix;
-
-    /**
-     * Constructor.
-     *
-     * @param \Memcache $memcache        A \Memcache instance
-     * @param array     $memcacheOptions An associative array of Memcache options
-     * @param array     $options         Session configuration options.
-     */
-    public function __construct(\Memcache $memcache, array $memcacheOptions = array(), array $options = array())
-    {
-        $this->memcache = $memcache;
-
-        // defaults
-        if (!isset($memcacheOptions['serverpool'])) {
-            $memcacheOptions['serverpool'] = array(array(
-                'host' => '127.0.0.1',
-                'port' => 11211,
-                'timeout' => 1,
-                'persistent' => false,
-                'weight' => 1,
-                'retry_interval' => 15,
-            ));
-        }
-
-        $memcacheOptions['expiretime'] = isset($memcacheOptions['expiretime']) ? (int)$memcacheOptions['expiretime'] : 86400;
-        $this->prefix = isset($memcacheOptions['prefix']) ? $memcacheOptions['prefix'] : 'sf2s';
-
-        $this->memcacheOptions = $memcacheOptions;
-    }
-
-    protected function addServer(array $server)
-    {
-        if (!array_key_exists('host', $server)) {
-            throw new \InvalidArgumentException('host key must be set');
-        }
-
-        $server['port'] = isset($server['port']) ? (int)$server['port'] : 11211;
-        $server['timeout'] = isset($server['timeout']) ? (int)$server['timeout'] : 1;
-        $server['persistent'] = isset($server['persistent']) ? (bool)$server['persistent'] : false;
-        $server['weight'] = isset($server['weight']) ? (int)$server['weight'] : 1;
-        $server['retry_interval'] = isset($server['retry_interval']) ? (int)$server['retry_interval'] : 15;
-
-        $this->memcache->addserver($server['host'], $server['port'], $server['persistent'],$server['weight'],$server['timeout'],$server['retry_interval']);
-
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        foreach ($this->memcacheOptions['serverpool'] as $server) {
-            $this->addServer($server);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return $this->memcache->close();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        return $this->memcache->get($this->prefix.$sessionId) ?: '';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        if (!$this->memcache->replace($this->prefix.$sessionId, $data, 0, $this->memcacheOptions['expiretime'])) {
-            return $this->memcache->set($this->prefix.$sessionId, $data, 0, $this->memcacheOptions['expiretime']);
-        }
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return $this->memcache->delete($this->prefix.$sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($lifetime)
-    {
-        // not required here because memcache will auto expire the records anyhow.
-        return true;
-    }
-}
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php b/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
deleted file mode 100644
index 71770dd..0000000
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * MemcachedSessionHandler.
- *
- * Memcached based session storage handler based on the Memcached class
- * provided by the PHP memcached extension.
- *
- * @see http://php.net/memcached
- *
- * @author Drak <drak@zikula.org>
- */
-class MemcachedSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * Memcached driver.
-     *
-     * @var \Memcached
-     */
-    private $memcached;
-
-    /**
-     * Configuration options.
-     *
-     * @var array
-     */
-    private $memcachedOptions;
-
-    /**
-     * Constructor.
-     *
-     * @param \Memcached $memcached        A \Memcached instance
-     * @param array      $memcachedOptions An associative array of Memcached options
-     * @param array      $options          Session configuration options.
-     */
-    public function __construct(\Memcached $memcached, array $memcachedOptions = array(), array $options = array())
-    {
-        $this->memcached = $memcached;
-
-        // defaults
-        if (!isset($memcachedOptions['serverpool'])) {
-            $memcachedOptions['serverpool'][] = array(
-                'host' => '127.0.0.1',
-                'port' => 11211,
-                'weight' => 1);
-        }
-
-        $memcachedOptions['expiretime'] = isset($memcachedOptions['expiretime']) ? (int)$memcachedOptions['expiretime'] : 86400;
-
-        $this->memcached->setOption(\Memcached::OPT_PREFIX_KEY, isset($memcachedOptions['prefix']) ? $memcachedOptions['prefix'] : 'sf2s');
-
-        $this->memcachedOptions = $memcachedOptions;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return $this->memcached->addServers($this->memcachedOptions['serverpool']);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        return $this->memcached->get($sessionId) ?: '';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        return $this->memcached->set($sessionId, $data, $this->memcachedOptions['expiretime']);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return $this->memcached->delete($sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($lifetime)
-    {
-        // not required here because memcached will auto expire the records anyhow.
-        return true;
-    }
-
-    /**
-     * Adds a server to the memcached handler.
-     *
-     * @param array $server
-     */
-    protected function addServer(array $server)
-    {
-        if (array_key_exists('host', $server)) {
-            throw new \InvalidArgumentException('host key must be set');
-        }
-        $server['port'] = isset($server['port']) ? (int)$server['port'] : 11211;
-        $server['timeout'] = isset($server['timeout']) ? (int)$server['timeout'] : 1;
-        $server['presistent'] = isset($server['presistent']) ? (bool)$server['presistent'] : false;
-        $server['weight'] = isset($server['weight']) ? (bool)$server['weight'] : 1;
-    }
-}
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php b/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
deleted file mode 100644
index 49e1568..0000000
--- a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler;
-
-class MemcacheSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var MemcacheSessionHandler
-     */
-    protected $storage;
-
-    protected $memcache;
-
-    protected function setUp()
-    {
-        if (!class_exists('Memcache')) {
-            $this->markTestSkipped('Skipped tests Memcache class is not present');
-        }
-
-        $this->memcache = $this->getMock('Memcache');
-        $this->storage = new MemcacheSessionHandler($this->memcache);
-    }
-
-    protected function tearDown()
-    {
-        $this->memcache = null;
-        $this->storage = null;
-    }
-
-    public function testOpenSession()
-    {
-        $this->memcache->expects($this->atLeastOnce())
-            ->method('addServer')
-            ->with('127.0.0.1', 11211, false, 1, 1, 15);
-
-        $this->assertTrue($this->storage->open('', ''));
-    }
-
-    public function testConstructingWithServerPool()
-    {
-        $mock    = $this->getMock('Memcache');
-
-        $storage = new MemcacheSessionHandler($mock, array(
-            'serverpool' => array(
-                array('host' => '127.0.0.2'),
-                array('host'           => '127.0.0.3',
-                      'port'           => 11212,
-                      'timeout'        => 10,
-                      'persistent'     => true,
-                      'weight'         => 5,
-                      'retry_interval' => 39,
-                ),
-                array('host'   => '127.0.0.4',
-                      'port'   => 11211,
-                      'weight' => 2
-                ),
-            ),
-        ));
-
-        $matcher = $mock
-            ->expects($this->at(0))
-            ->method('addServer')
-            ->with('127.0.0.2', 11211, false, 1, 1, 15);
-        $matcher = $mock
-            ->expects($this->at(1))
-            ->method('addServer')
-            ->with('127.0.0.3', 11212, true, 5, 10, 39);
-        $matcher = $mock
-            ->expects($this->at(2))
-            ->method('addServer')
-            ->with('127.0.0.4', 11211, false, 2, 1, 15);
-        $this->assertTrue($storage->open('', ''));
-    }
-
-    public function testCloseSession()
-    {
-        $this->memcache->expects($this->once())
-            ->method('close')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->storage->close());
-    }
-
-    public function testReadSession()
-    {
-        $this->memcache->expects($this->once())
-            ->method('get');
-
-        $this->assertEquals('', $this->storage->read(''));
-    }
-
-    public function testWriteSession()
-    {
-        $this->memcache->expects($this->once())
-            ->method('set')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->storage->write('', ''));
-    }
-
-    public function testDestroySession()
-    {
-        $this->memcache->expects($this->once())
-            ->method('delete')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->storage->destroy(''));
-    }
-
-    public function testGcSession()
-    {
-        $this->assertTrue($this->storage->gc(123));
-    }
-
-}
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php b/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
deleted file mode 100644
index 5731d92..0000000
--- a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcachedSessionHandler;
-
-class MemcacheddSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var MemcachedSessionHandler
-     */
-    protected $storage;
-
-    protected $memcached;
-
-    protected function setUp()
-    {
-        if (!class_exists('Memcached')) {
-            $this->markTestSkipped('Skipped tests Memcache class is not present');
-        }
-
-        $this->memcached = $this->getMock('Memcached');
-        $this->storage = new MemcachedSessionHandler($this->memcached);
-    }
-
-    protected function tearDown()
-    {
-        $this->memcached = null;
-        $this->storage = null;
-    }
-
-    public function testOpenSession()
-    {
-        $this->memcached->expects($this->atLeastOnce())
-            ->method('addServers')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->storage->open('', ''));
-    }
-
-    public function testCloseSession()
-    {
-        $this->assertTrue($this->storage->close());
-    }
-
-    public function testReadSession()
-    {
-        $this->memcached->expects($this->once())
-            ->method('get');
-
-        $this->assertEquals('', $this->storage->read(''));
-    }
-
-    public function testWriteSession()
-    {
-        $this->memcached->expects($this->once())
-            ->method('set')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->storage->write('', ''));
-    }
-
-    public function testDestroySession()
-    {
-        $this->memcached->expects($this->once())
-            ->method('delete')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->storage->destroy(''));
-    }
-
-    public function testGcSession()
-    {
-        $this->assertTrue($this->storage->gc(123));
-    }
-
-
-}
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php b/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php
deleted file mode 100644
index fb55026..0000000
--- a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\MemcacheProfilerStorage;
-
-class DummyMemcacheProfilerStorage extends MemcacheProfilerStorage
-{
-    public function getMemcache()
-    {
-        return parent::getMemcache();
-    }
-}
-
-/**
- * @group memcached
- */
-class MemcacheProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $storage;
-
-    public static function tearDownAfterClass()
-    {
-        if (self::$storage) {
-            self::$storage->purge();
-        }
-    }
-
-    protected function setUp()
-    {
-        if (!extension_loaded('memcache')) {
-            $this->markTestSkipped('MemcacheProfilerStorageTest requires that the extension memcache is loaded');
-        }
-
-        self::$storage = new DummyMemcacheProfilerStorage('memcache://127.0.0.1:11211', '', '', 86400);
-        try {
-            self::$storage->getMemcache();
-            $stats = self::$storage->getMemcache()->getExtendedStats();
-            if (!isset($stats['127.0.0.1:11211']) || $stats['127.0.0.1:11211'] === false) {
-                throw new \Exception();
-            }
-        } catch (\Exception $e) {
-            $this->markTestSkipped('MemcacheProfilerStorageTest requires that there is a Memcache server present on localhost');
-        }
-
-        if (self::$storage) {
-            self::$storage->purge();
-        }
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-}
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/bootstrap.php b/core/vendor/Symfony/Component/HttpKernel/Tests/bootstrap.php
deleted file mode 100644
index 2386a26..0000000
--- a/core/vendor/Symfony/Component/HttpKernel/Tests/bootstrap.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-spl_autoload_register(function ($class) {
-    foreach (array(
-        'SYMFONY_EVENT_DISPATCHER'     => 'EventDispatcher',
-        'SYMFONY_HTTP_FOUNDATION'      => 'HttpFoundation',
-        'SYMFONY_DEPENDENCY_INJECTION' => 'DependencyInjection',
-        'SYMFONY_CONSOLE'              => 'Console',
-        'SYMFONY_BROWSER_KIT'          => 'BrowserKit',
-        'SYMFONY_FINDER'               => 'Finder',
-        'SYMFONY_CLASS_LOADER'         => 'ClassLoader',
-        'SYMFONY_PROCESS'              => 'Process',
-        'SYMFONY_ROUTING'              => 'Routing',
-        'SYMFONY_CONFIG'               => 'Config',
-    ) as $env => $name) {
-        if (isset($_SERVER[$env]) && 0 === strpos(ltrim($class, '/'), 'Symfony\Component\\'.$name)) {
-            if (file_exists($file = $_SERVER[$env].'/'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\\'.$name)).'.php')) {
-                require_once $file;
-            }
-        }
-    }
-
-    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\HttpKernel')) {
-        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\HttpKernel')).'.php')) {
-            require_once $file;
-        }
-    }
-});
diff --git a/core/vendor/Symfony/Component/Routing/Tests/bootstrap.php b/core/vendor/Symfony/Component/Routing/Tests/bootstrap.php
deleted file mode 100644
index 8565b33..0000000
--- a/core/vendor/Symfony/Component/Routing/Tests/bootstrap.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-spl_autoload_register(function ($class) {
-    foreach (array(
-        'SYMFONY_CONFIG' => 'Config',
-        'SYMFONY_YAML'   => 'Yaml',
-    ) as $env => $name) {
-        if (isset($_SERVER[$env]) && 0 === strpos(ltrim($class, '/'), 'Symfony\Component\\'.$name)) {
-            if (file_exists($file = $_SERVER[$env].'/'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\\'.$name)).'.php')) {
-                require_once $file;
-            }
-        }
-    }
-
-    if (isset($_SERVER['DOCTRINE_COMMON']) && 0 === strpos(ltrim($class, '/'), 'Doctrine\Common')) {
-        if (file_exists($file = $_SERVER['DOCTRINE_COMMON'].'/lib/'.str_replace('\\', '/', $class).'.php')) {
-            require_once $file;
-        }
-    }
-
-    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Routing')) {
-        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\Routing')).'.php')) {
-            require_once $file;
-        }
-    }
-});
diff --git a/core/vendor/autoload.php b/core/vendor/autoload.php
new file mode 100644
index 0000000..85087dd
--- /dev/null
+++ b/core/vendor/autoload.php
@@ -0,0 +1,25 @@
+<?php
+
+// autoload.php generated by Composer
+if (!class_exists('Composer\\Autoload\\ClassLoader', false)) {
+    require __DIR__ . '/composer' . '/ClassLoader.php';
+}
+
+return call_user_func(function() {
+    $loader = new \Composer\Autoload\ClassLoader();
+    $composerDir = __DIR__ . '/composer';
+
+    $map = require $composerDir . '/autoload_namespaces.php';
+    foreach ($map as $namespace => $path) {
+        $loader->add($namespace, $path);
+    }
+
+    $classMap = require $composerDir . '/autoload_classmap.php';
+    if ($classMap) {
+        $loader->addClassMap($classMap);
+    }
+
+    $loader->register();
+
+    return $loader;
+});
diff --git a/core/vendor/Symfony/Component/ClassLoader/ClassLoader.php b/core/vendor/composer/ClassLoader.php
similarity index 80%
copy from core/vendor/Symfony/Component/ClassLoader/ClassLoader.php
copy to core/vendor/composer/ClassLoader.php
index b94bdb9..146276e 100644
--- a/core/vendor/Symfony/Component/ClassLoader/ClassLoader.php
+++ b/core/vendor/composer/ClassLoader.php
@@ -1,22 +1,23 @@
 <?php
 
 /*
- * This file is part of the Symfony package.
+ * This file is part of Composer.
  *
- * (c) Fabien Potencier <fabien@symfony.com>
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
  *
  * For the full copyright and license information, please view the LICENSE
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\ClassLoader;
+namespace Composer\Autoload;
 
 /**
- * ClassLoader implements an PSR-0 class loader
+ * ClassLoader implements a PSR-0 class loader
  *
  * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
  *
- *     $loader = new ClassLoader();
+ *     $loader = new \Composer\Autoload\ClassLoader();
  *
  *     // register classes with namespaces
  *     $loader->add('Symfony\Component', __DIR__.'/component');
@@ -34,6 +35,8 @@ namespace Symfony\Component\ClassLoader;
  * directory, and it will then fallback to the framework/ directory if not
  * found before giving up.
  *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Jordi Boggiano <j.boggiano@seld.be>
  */
@@ -42,6 +45,7 @@ class ClassLoader
     private $prefixes = array();
     private $fallbackDirs = array();
     private $useIncludePath = false;
+    private $classMap = array();
 
     public function getPrefixes()
     {
@@ -53,20 +57,30 @@ class ClassLoader
         return $this->fallbackDirs;
     }
 
-    public function addPrefixes(array $prefixes)
+    public function getClassMap()
+    {
+        return $this->classMap;
+    }
+
+    /**
+     * @param array $classMap Class to filename map
+     */
+    public function addClassMap(array $classMap)
     {
-        foreach ($prefixes as $prefix => $path) {
-            $this->addPrefix($prefix, $path);
+        if ($this->classMap) {
+            $this->classMap = array_merge($this->classMap, $classMap);
+        } else {
+            $this->classMap = $classMap;
         }
     }
 
     /**
      * Registers a set of classes
      *
-     * @param string       $prefix  The classes prefix
-     * @param array|string $paths   The location(s) of the classes
+     * @param string       $prefix The classes prefix
+     * @param array|string $paths  The location(s) of the classes
      */
-    public function addPrefix($prefix, $paths)
+    public function add($prefix, $paths)
     {
         if (!$prefix) {
             foreach ((array) $paths as $path) {
@@ -86,7 +100,7 @@ class ClassLoader
     }
 
     /**
-     * Turns on searching the include for class files.
+     * Turns on searching the include path for class files.
      *
      * @param Boolean $useIncludePath
      */
@@ -127,7 +141,7 @@ class ClassLoader
     /**
      * Loads the given class or interface.
      *
-     * @param string $class The name of the class
+     * @param  string       $class The name of the class
      * @return Boolean|null True, if loaded
      */
     public function loadClass($class)
@@ -148,6 +162,10 @@ class ClassLoader
      */
     public function findFile($class)
     {
+        if (isset($this->classMap[$class])) {
+            return $this->classMap[$class];
+        }
+
         if ('\\' == $class[0]) {
             $class = substr($class, 1);
         }
diff --git a/core/vendor/composer/autoload_classmap.php b/core/vendor/composer/autoload_classmap.php
new file mode 100644
index 0000000..4a9177d
--- /dev/null
+++ b/core/vendor/composer/autoload_classmap.php
@@ -0,0 +1,9 @@
+<?php
+
+// autoload_classmap.php generated by Composer
+
+$vendorDir = dirname(__DIR__);
+$baseDir = dirname($vendorDir);
+
+return array(
+);
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
new file mode 100644
index 0000000..80706ae
--- /dev/null
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,17 @@
+<?php
+
+// autoload_namespace.php generated by Composer
+
+$vendorDir = dirname(__DIR__);
+$baseDir = dirname($vendorDir);
+
+return array(
+    'Symfony\\Component\\Yaml' => $vendorDir . '/symfony/yaml/',
+    'Symfony\\Component\\Routing' => $vendorDir . '/symfony/routing/',
+    'Symfony\\Component\\HttpKernel' => $vendorDir . '/symfony/http-kernel/',
+    'Symfony\\Component\\HttpFoundation' => $vendorDir . '/symfony/http-foundation/',
+    'Symfony\\Component\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/',
+    'Symfony\\Component\\DependencyInjection' => $vendorDir . '/symfony/dependency-injection/',
+    'Symfony\\Component\\ClassLoader' => $vendorDir . '/symfony/class-loader/',
+    'SessionHandlerInterface' => $vendorDir . '/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs',
+);
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
new file mode 100644
index 0000000..0a5faca
--- /dev/null
+++ b/core/vendor/composer/installed.json
@@ -0,0 +1,415 @@
+[
+    {
+        "name": "symfony/dependency-injection",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/DependencyInjection",
+        "time": "2012-05-18 17:42:42",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/DependencyInjection",
+            "reference": "218ff74d4ef7261acbbcf1ff1704e30b85760b40"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/DependencyInjection/zipball/218ff74d4ef7261acbbcf1ff1704e30b85760b40",
+            "reference": "218ff74d4ef7261acbbcf1ff1704e30b85760b40",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/yaml": "2.1.*",
+            "symfony/config": "2.1.*"
+        },
+        "suggest": {
+            "symfony/yaml": "dev-master",
+            "symfony/config": "dev-master"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony DependencyInjection Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\DependencyInjection": ""
+            }
+        }
+    },
+    {
+        "name": "symfony/event-dispatcher",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/EventDispatcher",
+        "time": "2012-05-15 20:19:31",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/EventDispatcher",
+            "reference": "eb82542e8ec9506096caf7c528564c740a214f56"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/EventDispatcher/zipball/eb82542e8ec9506096caf7c528564c740a214f56",
+            "reference": "eb82542e8ec9506096caf7c528564c740a214f56",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/dependency-injection": "2.1.*"
+        },
+        "suggest": {
+            "symfony/dependency-injection": "dev-master",
+            "symfony/http-kernel": "dev-master"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony EventDispatcher Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\EventDispatcher": ""
+            }
+        }
+    },
+    {
+        "name": "symfony/http-foundation",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/HttpFoundation",
+        "time": "2012-05-18 17:42:42",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/HttpFoundation",
+            "reference": "5b1581418381f46679604fd19efc8b518f2390ae"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/HttpFoundation/zipball/5b1581418381f46679604fd19efc8b518f2390ae",
+            "reference": "5b1581418381f46679604fd19efc8b518f2390ae",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony HttpFoundation Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\HttpFoundation": "",
+                "SessionHandlerInterface": "Symfony/Component/HttpFoundation/Resources/stubs"
+            }
+        }
+    },
+    {
+        "name": "symfony/http-kernel",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/HttpKernel",
+        "time": "2012-05-19 07:24:03",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/HttpKernel",
+            "reference": "8160e6e1722cd0073152d01dc1464e2e23369484"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/HttpKernel/zipball/8160e6e1722cd0073152d01dc1464e2e23369484",
+            "reference": "8160e6e1722cd0073152d01dc1464e2e23369484",
+            "shasum": ""
+        },
+        "require": {
+            "symfony/event-dispatcher": "2.1.*",
+            "symfony/http-foundation": "2.1.*",
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/browser-kit": "2.1.*",
+            "symfony/class-loader": "2.1.*",
+            "symfony/config": "2.1.*",
+            "symfony/console": "2.1.*",
+            "symfony/dependency-injection": "2.1.*",
+            "symfony/finder": "2.1.*",
+            "symfony/process": "2.1.*",
+            "symfony/routing": "2.1.*"
+        },
+        "suggest": {
+            "symfony/browser-kit": "dev-master",
+            "symfony/class-loader": "dev-master",
+            "symfony/config": "dev-master",
+            "symfony/console": "dev-master",
+            "symfony/dependency-injection": "dev-master",
+            "symfony/finder": "dev-master"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony HttpKernel Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\HttpKernel": ""
+            }
+        }
+    },
+    {
+        "name": "symfony/routing",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/Routing",
+        "time": "2012-05-20 03:43:44",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Routing",
+            "reference": "aec133671d79d530d09aa0b5ca4cea9e4ee4b274"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/Routing/zipball/aec133671d79d530d09aa0b5ca4cea9e4ee4b274",
+            "reference": "aec133671d79d530d09aa0b5ca4cea9e4ee4b274",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/config": "2.1.*",
+            "symfony/yaml": "2.1.*",
+            "doctrine/common": ">=2.1,<2.3-dev"
+        },
+        "suggest": {
+            "symfony/config": "dev-master",
+            "symfony/yaml": "dev-master",
+            "doctrine/common": ">=2.1,<2.3-dev"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony Routing Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Routing": ""
+            }
+        }
+    },
+    {
+        "name": "symfony/yaml",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/Yaml",
+        "time": "2012-05-18 17:42:42",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Yaml",
+            "reference": "49ad500448c17a4b515c8f567dbb540af3cf41ef"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/Yaml/zipball/49ad500448c17a4b515c8f567dbb540af3cf41ef",
+            "reference": "49ad500448c17a4b515c8f567dbb540af3cf41ef",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony Yaml Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Yaml": ""
+            }
+        }
+    },
+    {
+        "name": "symfony/class-loader",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "target-dir": "Symfony/Component/ClassLoader",
+        "time": "2012-05-15 06:44:52",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/ClassLoader",
+            "reference": "c57e62c886899f8d88264efad23c857eb198dc09"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/symfony/ClassLoader/zipball/c57e62c886899f8d88264efad23c857eb198dc09",
+            "reference": "c57e62c886899f8d88264efad23c857eb198dc09",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/finder": "2.1.*"
+        },
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev"
+            }
+        },
+        "installation-source": "source",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": null,
+                "role": null
+            },
+            {
+                "name": "Symfony Community",
+                "email": null,
+                "homepage": "http://symfony.com/contributors",
+                "role": null
+            }
+        ],
+        "description": "Symfony ClassLoader Component",
+        "homepage": "http://symfony.com",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\ClassLoader": ""
+            }
+        }
+    }
+]
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/.gitignore b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/.gitignore
new file mode 100644
index 0000000..d1502b0
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/.gitignore
@@ -0,0 +1,2 @@
+vendor/
+composer.lock
diff --git a/core/vendor/Symfony/Component/ClassLoader/ApcClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php
similarity index 91%
rename from core/vendor/Symfony/Component/ClassLoader/ApcClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php
index 3508db6..04104a1 100644
--- a/core/vendor/Symfony/Component/ClassLoader/ApcClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php
@@ -47,8 +47,8 @@ class ApcClassLoader
     /**
      * Constructor.
      *
-     * @param string $prefix A prefix to create a namespace in APC
-     * @param object $classFinder
+     * @param string $prefix      A prefix to create a namespace in APC
+     * @param object $classFinder An object that implements findFile() method.
      *
      * @api
      */
@@ -88,6 +88,7 @@ class ApcClassLoader
      * Loads the given class or interface.
      *
      * @param string $class The name of the class
+     *
      * @return Boolean|null True, if loaded
      */
     public function loadClass($class)
diff --git a/core/vendor/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
similarity index 98%
rename from core/vendor/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
index 1295d0a..379fbe4 100644
--- a/core/vendor/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
@@ -84,6 +84,8 @@ class ApcUniversalClassLoader extends UniversalClassLoader
      * Finds a file by class name while caching lookups to APC.
      *
      * @param string $class A class name to resolve to file
+     *
+     * @return string|null The path, if found
      */
     public function findFile($class)
     {
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
new file mode 100644
index 0000000..694e713
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
@@ -0,0 +1,15 @@
+CHANGELOG
+=========
+
+2.1.0
+-----
+
+ * added a DebugClassLoader able to wrap any autoloader providing a findFile
+   method
+ * added a new ApcClassLoader and XcacheClassLoader using composition to wrap
+   other loaders
+ * added a new ClassLoader which does not distinguish between namespaced and
+   pear-like classes (as the PEAR convention is a subset of PSR-0) and
+   supports using Composer's namespace maps
+ * added a class map generator
+ * added support for loading globally-installed PEAR packages
diff --git a/core/vendor/Symfony/Component/ClassLoader/ClassCollectionLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
similarity index 95%
rename from core/vendor/Symfony/Component/ClassLoader/ClassCollectionLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
index 894900b..47588f7 100644
--- a/core/vendor/Symfony/Component/ClassLoader/ClassCollectionLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
@@ -154,6 +154,7 @@ class ClassCollectionLoader
                     $inNamespace = false;
                     --$i;
                 } else {
+                    $output = rtrim($output);
                     $output .= "\n{";
                     $inNamespace = true;
                 }
@@ -172,7 +173,7 @@ class ClassCollectionLoader
     /**
      * Writes a cache file.
      *
-     * @param string $file Filename
+     * @param string $file    Filename
      * @param string $content Temporary file content
      *
      * @throws \RuntimeException when a cache file cannot be written
@@ -181,7 +182,7 @@ class ClassCollectionLoader
     {
         $tmpFile = tempnam(dirname($file), basename($file));
         if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) {
-            chmod($file, 0666 & ~umask());
+            @chmod($file, 0666 & ~umask());
 
             return;
         }
diff --git a/core/vendor/Symfony/Component/ClassLoader/ClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php
similarity index 91%
rename from core/vendor/Symfony/Component/ClassLoader/ClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php
index b94bdb9..7a8a6fc 100644
--- a/core/vendor/Symfony/Component/ClassLoader/ClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php
@@ -25,7 +25,7 @@ namespace Symfony\Component\ClassLoader;
  *     // activate the autoloader
  *     $loader->register();
  *
- *     // to enable searching the include path (eg. for PEAR packages)
+ *     // to enable searching the include path (e.g. for PEAR packages)
  *     $loader->setUseIncludePath(true);
  *
  * In this example, if you try to use a class in the Symfony\Component
@@ -43,16 +43,31 @@ class ClassLoader
     private $fallbackDirs = array();
     private $useIncludePath = false;
 
+    /**
+     * Returns prefixes.
+     *
+     * @return array
+     */
     public function getPrefixes()
     {
         return $this->prefixes;
     }
 
+    /**
+     * Returns fallback directories.
+     *
+     * @return array
+     */
     public function getFallbackDirs()
     {
         return $this->fallbackDirs;
     }
 
+    /**
+     * Adds prefixes.
+     *
+     * @param array $prefixes Prefixes to add
+     */
     public function addPrefixes(array $prefixes)
     {
         foreach ($prefixes as $prefix => $path) {
@@ -63,8 +78,8 @@ class ClassLoader
     /**
      * Registers a set of classes
      *
-     * @param string       $prefix  The classes prefix
-     * @param array|string $paths   The location(s) of the classes
+     * @param string       $prefix The classes prefix
+     * @param array|string $paths  The location(s) of the classes
      */
     public function addPrefix($prefix, $paths)
     {
@@ -128,6 +143,7 @@ class ClassLoader
      * Loads the given class or interface.
      *
      * @param string $class The name of the class
+     *
      * @return Boolean|null True, if loaded
      */
     public function loadClass($class)
diff --git a/core/vendor/Symfony/Component/ClassLoader/ClassMapGenerator.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
similarity index 98%
rename from core/vendor/Symfony/Component/ClassLoader/ClassMapGenerator.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
index c0e9fc6..91ea9af 100644
--- a/core/vendor/Symfony/Component/ClassLoader/ClassMapGenerator.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
@@ -22,7 +22,7 @@ class ClassMapGenerator
      * Generate a class map file
      *
      * @param array|string $dirs Directories or a single path to search in
-     * @param string $file The name of the class map file
+     * @param string       $file The name of the class map file
      */
     static public function dump($dirs, $file)
     {
diff --git a/core/vendor/Symfony/Component/ClassLoader/DebugClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
similarity index 99%
rename from core/vendor/Symfony/Component/ClassLoader/DebugClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
index b6f7968..da7d289 100644
--- a/core/vendor/Symfony/Component/ClassLoader/DebugClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
@@ -73,6 +73,7 @@ class DebugClassLoader
      * Loads the given class or interface.
      *
      * @param string $class The name of the class
+     *
      * @return Boolean|null True, if loaded
      */
     public function loadClass($class)
diff --git a/core/vendor/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/LICENSE b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/LICENSE
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/LICENSE
diff --git a/core/vendor/Symfony/Component/ClassLoader/MapClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/MapClassLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/MapClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/MapClassLoader.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/README.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
similarity index 93%
rename from core/vendor/Symfony/Component/ClassLoader/README.md
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
index 5a83c5f..64dffe9 100644
--- a/core/vendor/Symfony/Component/ClassLoader/README.md
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
@@ -64,10 +64,9 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit -c src/Symfony/Component/ClassLoader/
+    phpunit
 
 If you also want to run the unit tests that depend on other Symfony
-Components, declare the following environment variables before running
-PHPUnit:
+Components, install dev dependencies before running PHPUnit:
 
-    export SYMFONY_FINDER=../path/to/Finder
+    php composer.phar install --dev
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
similarity index 98%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
index cd1c439..5f4db1f 100644
--- a/core/vendor/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
@@ -43,7 +43,7 @@ namespace Foo
 {
 class Foo {}
 }
-namespace   Bar 
+namespace   Bar
 {
 class Foo {}
 }
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Baz.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Baz.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Baz.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Baz.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Namespaced/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Baz.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Baz.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Baz.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Baz.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/Pearlike/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Baz.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Baz.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Baz.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Baz.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Baz.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Baz.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Baz.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Baz.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Namespaced2/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Baz.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Baz.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Baz.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Baz.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Baz.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Baz.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Baz.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Baz.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/Pearlike2/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeClass.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeInterface.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/SomeParent.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/multipleNs.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notAClass.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notAClass.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notAClass.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notAClass.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notPhpFile.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notPhpFile.md
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notPhpFile.md
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/notPhpFile.md
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced2/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced2/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced2/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Namespaced2/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike2/FooBar.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike2/FooBar.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike2/FooBar.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/fallback/Pearlike2/FooBar.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/includepath/Foo.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/includepath/Foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/Fixtures/includepath/Foo.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/includepath/Foo.php
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
new file mode 100644
index 0000000..5d1fd3c
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
@@ -0,0 +1,28 @@
+<?php
+namespace {
+    trait TFoo {
+
+    }
+
+    class CFoo {
+        use TFoo;
+    }
+}
+
+namespace Foo {
+    trait TBar {
+
+    }
+
+    interface IBar {
+
+    }
+
+    trait TFooBar {
+
+    }
+
+    class CBar implements IBar {
+        use TBar, TFooBar;
+    }
+}
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php
diff --git a/core/vendor/Symfony/Component/ClassLoader/Tests/bootstrap.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/bootstrap.php
similarity index 58%
rename from core/vendor/Symfony/Component/ClassLoader/Tests/bootstrap.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/bootstrap.php
index 3364e14..54dac3f 100644
--- a/core/vendor/Symfony/Component/ClassLoader/Tests/bootstrap.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/bootstrap.php
@@ -10,19 +10,13 @@
  */
 
 spl_autoload_register(function ($class) {
-    foreach (array(
-        'SYMFONY_FINDER' => 'Finder',
-    ) as $env => $name) {
-        if (isset($_SERVER[$env]) && 0 === strpos(ltrim($class, '/'), 'Symfony\Component\\'.$name)) {
-            if (file_exists($file = $_SERVER[$env].'/'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\\'.$name)).'.php')) {
-                require_once $file;
-            }
-        }
-    }
-
     if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\ClassLoader')) {
         if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\ClassLoader')).'.php')) {
             require_once $file;
         }
     }
 });
+
+if (file_exists($loader = __DIR__.'/../vendor/autoload.php')) {
+    require_once $loader;
+}
diff --git a/core/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php
similarity index 97%
rename from core/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php
index 60f245a..b6128ad 100644
--- a/core/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php
@@ -42,7 +42,7 @@ namespace Symfony\Component\ClassLoader;
  *     ));
  *
  *
- *     // to enable searching the include path (eg. for PEAR packages)
+ *     // to enable searching the include path (e.g. for PEAR packages)
  *     $loader->useIncludePath(true);
  *
  *     // activate the autoloader
@@ -216,8 +216,8 @@ class UniversalClassLoader
     /**
      * Registers a set of classes using the PEAR naming convention.
      *
-     * @param string       $prefix  The classes prefix
-     * @param array|string $paths   The location(s) of the classes
+     * @param string       $prefix The classes prefix
+     * @param array|string $paths  The location(s) of the classes
      *
      * @api
      */
diff --git a/core/vendor/Symfony/Component/ClassLoader/XcacheClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php
similarity index 95%
rename from core/vendor/Symfony/Component/ClassLoader/XcacheClassLoader.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php
index 2eaaba2..2decbce 100644
--- a/core/vendor/Symfony/Component/ClassLoader/XcacheClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php
@@ -48,8 +48,8 @@ class XcacheClassLoader
     /**
      * Constructor.
      *
-     * @param string $prefix A prefix to create a namespace in Xcache
-     * @param object $classFinder
+     * @param string $prefix      A prefix to create a namespace in Xcache
+     * @param object $classFinder An object that implements findFile() method.
      *
      * @api
      */
@@ -89,12 +89,14 @@ class XcacheClassLoader
      * Loads the given class or interface.
      *
      * @param string $class The name of the class
+     *
      * @return Boolean|null True, if loaded
      */
     public function loadClass($class)
     {
         if ($file = $this->findFile($class)) {
             require $file;
+
             return true;
         }
     }
diff --git a/core/vendor/Symfony/Component/ClassLoader/composer.json b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
similarity index 88%
rename from core/vendor/Symfony/Component/ClassLoader/composer.json
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
index 2608f04..a4b32ec 100644
--- a/core/vendor/Symfony/Component/ClassLoader/composer.json
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
@@ -16,7 +16,10 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
+    },
+    "require-dev": {
+        "symfony/finder": "2.1.*"
     },
     "autoload": {
         "psr-0": { "Symfony\\Component\\ClassLoader": "" }
diff --git a/core/vendor/Symfony/Component/ClassLoader/phpunit.xml.dist b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist
similarity index 94%
rename from core/vendor/Symfony/Component/ClassLoader/phpunit.xml.dist
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist
index bc7a21e..ae7e2ad 100644
--- a/core/vendor/Symfony/Component/ClassLoader/phpunit.xml.dist
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist
@@ -23,6 +23,7 @@
             <exclude>
                 <directory>./Resources</directory>
                 <directory>./Tests</directory>
+                <directory>./vendor</directory>
             </exclude>
         </whitelist>
     </filter>
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/.gitignore b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/.gitignore
new file mode 100644
index 0000000..d1502b0
--- /dev/null
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/.gitignore
@@ -0,0 +1,2 @@
+vendor/
+composer.lock
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Alias.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Alias.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/Alias.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Alias.php
index 9a377ed..fd75578 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Alias.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Alias.php
@@ -22,7 +22,7 @@ class Alias
     /**
      * Constructor.
      *
-     * @param string $id Alias identifier
+     * @param string  $id     Alias identifier
      * @param Boolean $public If this alias is public
      *
      * @api
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md
new file mode 100644
index 0000000..96839e9
--- /dev/null
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md
@@ -0,0 +1,12 @@
+CHANGELOG
+=========
+
+2.1.0
+-----
+
+ * added IntrospectableContainerInterface (to be able to check if a service
+   has been initialized or not)
+ * added ConfigurationExtensionInterface
+ * added Definition::clearTag()
+ * component exceptions that inherit base SPL classes are now used exclusively
+   (this includes dumped containers)
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
index b565f3f..19079b4 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
@@ -74,6 +74,9 @@ class AnalyzeServiceReferencesPass implements RepeatablePassInterface
             if (!$this->onlyConstructorArguments) {
                 $this->processArguments($definition->getMethodCalls());
                 $this->processArguments($definition->getProperties());
+                if ($definition->getConfigurator()) {
+                    $this->processArguments(array($definition->getConfigurator()));
+                }
             }
         }
 
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/Compiler.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/Compiler.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/Compiler.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/Compiler.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/LoggingFormatter.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/LoggingFormatter.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/LoggingFormatter.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/LoggingFormatter.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/PassConfig.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
similarity index 99%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
index eb2266b..e863f75 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
@@ -96,7 +96,7 @@ class PassConfig
      * Adds a pass.
      *
      * @param CompilerPassInterface $pass A Compiler pass
-     * @param string $type The pass type
+     * @param string                $type The pass type
      *
      * @throws InvalidArgumentException when a pass type doesn't exist
      *
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/RepeatablePassInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatablePassInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/RepeatablePassInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatablePassInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
similarity index 92%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
index dc83807..5d00ed6 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
@@ -63,8 +63,8 @@ class ReplaceAliasByActualDefinitionPass implements CompilerPassInterface
      * Updates references to remove aliases.
      *
      * @param ContainerBuilder $container The container
-     * @param string $currentId The alias identifier being replaced
-     * @param string $newId The id of the service the alias points to
+     * @param string           $currentId The alias identifier being replaced
+     * @param string           $newId     The id of the service the alias points to
      */
     private function updateReferences($container, $currentId, $newId)
     {
@@ -94,9 +94,9 @@ class ReplaceAliasByActualDefinitionPass implements CompilerPassInterface
     /**
      * Updates argument references.
      *
-     * @param array $arguments An array of Arguments
+     * @param array  $arguments An array of Arguments
      * @param string $currentId The alias identifier
-     * @param string $newId The identifier the alias points to
+     * @param string $newId     The identifier the alias points to
      */
     private function updateArgumentReferences(array $arguments, $currentId, $newId)
     {
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
similarity index 98%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
index 6d3c78a..996199c 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
@@ -69,7 +69,7 @@ class ResolveInvalidReferencesPass implements CompilerPassInterface
     /**
      * Processes arguments to determine invalid references.
      *
-     * @param array   $arguments An array of Reference objects
+     * @param array   $arguments    An array of Reference objects
      * @param Boolean $inMethodCall
      */
     private function processArguments(array $arguments, $inMethodCall = false)
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveParameterPlaceHoldersPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveParameterPlaceHoldersPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveParameterPlaceHoldersPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveParameterPlaceHoldersPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
index 60a9295..19da234 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
@@ -29,7 +29,7 @@ class ServiceReferenceGraphEdge
      *
      * @param ServiceReferenceGraphNode $sourceNode
      * @param ServiceReferenceGraphNode $destNode
-     * @param string $value
+     * @param string                    $value
      */
     public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, $value = null)
     {
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
index da8dc70..3fd5077 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
@@ -31,8 +31,8 @@ class ServiceReferenceGraphNode
     /**
      * Constructor.
      *
-     * @param string $id The node identifier
-     * @param mixed $value The node value
+     * @param string $id    The node identifier
+     * @param mixed  $value The node value
      */
     public function __construct($id, $value)
     {
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Container.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
similarity index 97%
rename from core/vendor/Symfony/Component/DependencyInjection/Container.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
index cf29685..763c609 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Container.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
@@ -133,7 +133,7 @@ class Container implements IntrospectableContainerInterface
     /**
      * Gets a parameter.
      *
-     * @param  string $name The parameter name
+     * @param string $name The parameter name
      *
      * @return mixed  The parameter value
      *
@@ -149,7 +149,7 @@ class Container implements IntrospectableContainerInterface
     /**
      * Checks if a parameter exists.
      *
-     * @param  string $name The parameter name
+     * @param string $name The parameter name
      *
      * @return Boolean The presence of parameter in container
      *
@@ -204,7 +204,7 @@ class Container implements IntrospectableContainerInterface
     /**
      * Returns true if the given service is defined.
      *
-     * @param  string  $id      The service identifier
+     * @param string $id The service identifier
      *
      * @return Boolean true if the service is defined, false otherwise
      *
@@ -223,8 +223,8 @@ class Container implements IntrospectableContainerInterface
      * If a service is both defined through a set() method and
      * with a set*Service() method, the former has always precedence.
      *
-     * @param  string  $id              The service identifier
-     * @param  integer $invalidBehavior The behavior when the service does not exist
+     * @param string  $id              The service identifier
+     * @param integer $invalidBehavior The behavior when the service does not exist
      *
      * @return object The associated service
      *
@@ -265,11 +265,11 @@ class Container implements IntrospectableContainerInterface
             throw new ServiceNotFoundException($id);
         }
     }
-    
+
     /**
      * Returns true if the given service has actually been initialized
      *
-     * @param string $id          The service identifier
+     * @param string $id The service identifier
      *
      * @return Boolean true if service has already been initialized, false otherwise
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ContainerAware.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAware.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/ContainerAware.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAware.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ContainerAwareInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/ContainerAwareInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ContainerBuilder.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/ContainerBuilder.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
index 1d77ebc..a706229 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/ContainerBuilder.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
@@ -291,7 +291,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Returns true if the given service is defined.
      *
-     * @param  string  $id      The service identifier
+     * @param string $id The service identifier
      *
      * @return Boolean true if the service is defined, false otherwise
      *
@@ -307,8 +307,8 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Gets a service.
      *
-     * @param  string  $id              The service identifier
-     * @param  integer $invalidBehavior The behavior when the service does not exist
+     * @param string  $id              The service identifier
+     * @param integer $invalidBehavior The behavior when the service does not exist
      *
      * @return object The associated service
      *
@@ -532,7 +532,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Returns true if an alias exists under the given identifier.
      *
-     * @param  string  $id The service identifier
+     * @param string $id The service identifier
      *
      * @return Boolean true if the alias exists, false otherwise
      *
@@ -558,7 +558,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Gets an alias.
      *
-     * @param  string  $id The service identifier
+     * @param string $id The service identifier
      *
      * @return string The aliased service identifier
      *
@@ -583,8 +583,8 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      * This methods allows for simple registration of service definition
      * with a fluid interface.
      *
-     * @param  string $id    The service identifier
-     * @param  string $class The service class
+     * @param string $id    The service identifier
+     * @param string $class The service class
      *
      * @return Definition A Definition instance
      *
@@ -637,8 +637,8 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Sets a service definition.
      *
-     * @param  string     $id         The service identifier
-     * @param  Definition $definition A Definition instance
+     * @param string     $id         The service identifier
+     * @param Definition $definition A Definition instance
      *
      * @throws BadMethodCallException When this ContainerBuilder is frozen
      *
@@ -660,7 +660,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Returns true if a service definition exists under the given identifier.
      *
-     * @param  string  $id The service identifier
+     * @param string $id The service identifier
      *
      * @return Boolean true if the service definition exists, false otherwise
      *
@@ -674,7 +674,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Gets a service definition.
      *
-     * @param  string  $id The service identifier
+     * @param string $id The service identifier
      *
      * @return Definition A Definition instance
      *
@@ -698,7 +698,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      *
      * The method "unaliases" recursively to return a Definition instance.
      *
-     * @param  string  $id The service identifier or alias
+     * @param string $id The service identifier or alias
      *
      * @return Definition A Definition instance
      *
@@ -718,8 +718,8 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Creates a service for a service definition.
      *
-     * @param  Definition $definition A service definition instance
-     * @param  string     $id         The service identifier
+     * @param Definition $definition A service definition instance
+     * @param string     $id         The service identifier
      *
      * @return object              The service described by the service definition
      *
@@ -803,7 +803,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
     /**
      * Replaces service references by the real service instance.
      *
-     * @param  mixed $value A value
+     * @param mixed $value A value
      *
      * @return mixed The same value with all service references replaced by the real service instances
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ContainerInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
similarity index 91%
rename from core/vendor/Symfony/Component/DependencyInjection/ContainerInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
index 93cbf3a..6a5988e 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/ContainerInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
@@ -43,8 +43,8 @@ interface ContainerInterface
     /**
      * Gets a service.
      *
-     * @param  string $id              The service identifier
-     * @param  int    $invalidBehavior The behavior when the service does not exist
+     * @param string $id              The service identifier
+     * @param int    $invalidBehavior The behavior when the service does not exist
      *
      * @return object The associated service
      *
@@ -59,7 +59,7 @@ interface ContainerInterface
     /**
      * Returns true if the given service is defined.
      *
-     * @param  string  $id      The service identifier
+     * @param string $id The service identifier
      *
      * @return Boolean true if the service is defined, false otherwise
      *
@@ -70,7 +70,7 @@ interface ContainerInterface
     /**
      * Gets a parameter.
      *
-     * @param  string $name The parameter name
+     * @param string $name The parameter name
      *
      * @return mixed  The parameter value
      *
@@ -83,7 +83,7 @@ interface ContainerInterface
     /**
      * Checks if a parameter exists.
      *
-     * @param  string $name The parameter name
+     * @param string $name The parameter name
      *
      * @return Boolean The presence of parameter in container
      *
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Definition.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
similarity index 93%
rename from core/vendor/Symfony/Component/DependencyInjection/Definition.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
index 1c974a6..e7265f2 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Definition.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
@@ -64,7 +64,7 @@ class Definition
      * Sets the name of the class that acts as a factory using the factory method,
      * which will be invoked statically.
      *
-     * @param  string $factoryClass The factory class name
+     * @param string $factoryClass The factory class name
      *
      * @return Definition The current instance
      *
@@ -92,7 +92,7 @@ class Definition
     /**
      * Sets the factory method able to create an instance of this class.
      *
-     * @param  string $factoryMethod The factory method name
+     * @param string $factoryMethod The factory method name
      *
      * @return Definition The current instance
      *
@@ -148,7 +148,7 @@ class Definition
     /**
      * Sets the service class.
      *
-     * @param  string $class The service class
+     * @param string $class The service class
      *
      * @return Definition The current instance
      *
@@ -176,7 +176,7 @@ class Definition
     /**
      * Sets the arguments to pass to the service constructor/factory method.
      *
-     * @param  array $arguments An array of arguments
+     * @param array $arguments An array of arguments
      *
      * @return Definition The current instance
      *
@@ -220,7 +220,7 @@ class Definition
     /**
      * Adds an argument to pass to the service constructor/factory method.
      *
-     * @param  mixed $argument An argument
+     * @param mixed $argument An argument
      *
      * @return Definition The current instance
      *
@@ -237,7 +237,7 @@ class Definition
      * Sets a specific argument
      *
      * @param integer $index
-     * @param mixed $argument
+     * @param mixed   $argument
      *
      * @return Definition The current instance
      *
@@ -287,7 +287,7 @@ class Definition
     /**
      * Sets the methods to call after service initialization.
      *
-     * @param  array $calls An array of method calls
+     * @param array $calls An array of method calls
      *
      * @return Definition The current instance
      *
@@ -306,8 +306,8 @@ class Definition
     /**
      * Adds a method to call after service initialization.
      *
-     * @param  string $method    The method name to call
-     * @param  array  $arguments An array of arguments to pass to the method call
+     * @param string $method    The method name to call
+     * @param array  $arguments An array of arguments to pass to the method call
      *
      * @return Definition The current instance
      *
@@ -328,7 +328,7 @@ class Definition
     /**
      * Removes a method to call after service initialization.
      *
-     * @param  string $method    The method name to remove
+     * @param string $method The method name to remove
      *
      * @return Definition The current instance
      *
@@ -349,7 +349,7 @@ class Definition
     /**
      * Check if the current definition has a given method to call after service initialization.
      *
-     * @param  string $method    The method name to search for
+     * @param string $method The method name to search for
      *
      * @return Boolean
      *
@@ -409,7 +409,7 @@ class Definition
     /**
      * Gets a tag by name.
      *
-     * @param  string $name The tag name
+     * @param string $name The tag name
      *
      * @return array An array of attributes
      *
@@ -423,8 +423,8 @@ class Definition
     /**
      * Adds a tag for this definition.
      *
-     * @param  string $name       The tag name
-     * @param  array  $attributes An array of attributes
+     * @param string $name       The tag name
+     * @param array  $attributes An array of attributes
      *
      * @return Definition The current instance
      *
@@ -484,7 +484,7 @@ class Definition
     /**
      * Sets a file to require before creating the service.
      *
-     * @param  string $file A full pathname to include
+     * @param string $file A full pathname to include
      *
      * @return Definition The current instance
      *
@@ -512,7 +512,7 @@ class Definition
     /**
      * Sets the scope of the service
      *
-     * @param  string $scope Whether the service must be shared or not
+     * @param string $scope Whether the service must be shared or not
      *
      * @return Definition The current instance
      *
@@ -628,7 +628,7 @@ class Definition
     /**
      * Sets a configurator to call after the service is fully initialized.
      *
-     * @param  mixed $callable A PHP callable
+     * @param mixed $callable A PHP callable
      *
      * @return Definition The current instance
      *
diff --git a/core/vendor/Symfony/Component/DependencyInjection/DefinitionDecorator.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
similarity index 99%
rename from core/vendor/Symfony/Component/DependencyInjection/DefinitionDecorator.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
index 8652d80..0306f75 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/DefinitionDecorator.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
@@ -185,7 +185,7 @@ class DefinitionDecorator extends Definition
      * parent definition, otherwise your arguments will only be appended.
      *
      * @param integer $index
-     * @param mixed $value
+     * @param mixed   $value
      *
      * @return DefinitionDecorator the current instance
      * @throws InvalidArgumentException when $index isn't an integer
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Dumper/Dumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/Dumper.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Dumper/Dumper.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/Dumper.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php
similarity index 92%
rename from core/vendor/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php
index c05dc6d..6972cbf 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php
@@ -23,7 +23,7 @@ interface DumperInterface
     /**
      * Dumps the service container.
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string The representation of the service container
      *
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
similarity index 97%
rename from core/vendor/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
index 133c621..debdc52 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
@@ -50,7 +50,7 @@ class GraphvizDumper extends Dumper
      *  * node.definition: The default options for services that are defined via service definition instances
      *  * node.missing: The default options for missing services
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string The dot representation of the service container
      */
@@ -119,10 +119,10 @@ class GraphvizDumper extends Dumper
     /**
      * Finds all edges belonging to a specific service id.
      *
-     * @param string $id The service id used to find edges
-     * @param array $arguments An array of arguments
+     * @param string  $id        The service id used to find edges
+     * @param array   $arguments An array of arguments
      * @param Boolean $required
-     * @param string $name
+     * @param string  $name
      *
      * @return array An array of edges
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
similarity index 98%
rename from core/vendor/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
index a567dfe..f955464 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
@@ -70,7 +70,7 @@ class PhpDumper extends Dumper
      *  * class:      The class name
      *  * base_class: The base class name
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string A PHP class representing of the service container
      *
@@ -152,7 +152,7 @@ class PhpDumper extends Dumper
     /**
      * Generates the require_once statement for service includes.
      *
-     * @param string $id The service id
+     * @param string     $id         The service id
      * @param Definition $definition
      *
      * @return string
@@ -182,7 +182,7 @@ class PhpDumper extends Dumper
     /**
      * Generates the inline definition of a service.
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
      *
      * @return string
@@ -261,7 +261,7 @@ class PhpDumper extends Dumper
     /**
      * Adds the service return statement.
      *
-     * @param string $id Service id
+     * @param string     $id         Service id
      * @param Definition $definition
      *
      * @return string
@@ -278,7 +278,7 @@ class PhpDumper extends Dumper
     /**
      * Generates the service instance.
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
      *
      * @return string
@@ -326,7 +326,7 @@ class PhpDumper extends Dumper
                 throw new RuntimeException('Factory method requires a factory service or factory class in service definition for '.$id);
             }
         } elseif (false !== strpos($class, '$')) {
-            $code = sprintf("        \$class = %s;\n        $return{$instantiation}new \$class(%s);\n", $class, implode(', ', $arguments));
+            $code = sprintf("        \$class = %s;\n\n        $return{$instantiation}new \$class(%s);\n", $class, implode(', ', $arguments));
         } else {
             $code = sprintf("        $return{$instantiation}new \\%s(%s);\n", substr(str_replace('\\\\', '\\', $class), 1, -1), implode(', ', $arguments));
         }
@@ -341,7 +341,7 @@ class PhpDumper extends Dumper
     /**
      * Checks if the definition is a simple instance.
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
      *
      * @return Boolean
@@ -364,9 +364,9 @@ class PhpDumper extends Dumper
     /**
      * Adds method calls to a service definition.
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
-     * @param string $variableName
+     * @param string     $variableName
      *
      * @return string
      */
@@ -398,7 +398,7 @@ class PhpDumper extends Dumper
     /**
      * Generates the inline definition setup.
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
      * @return string
      */
@@ -436,9 +436,9 @@ class PhpDumper extends Dumper
     /**
      * Adds configurator definition
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
-     * @param string $variableName
+     * @param string     $variableName
      *
      * @return string
      */
@@ -462,7 +462,7 @@ class PhpDumper extends Dumper
     /**
      * Adds a service
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
      *
      * @return string
@@ -613,7 +613,7 @@ EOF;
     /**
      * Adds the class headers.
      *
-     * @param string $class Class name
+     * @param string $class     Class name
      * @param string $baseClass The name of the base class
      *
      * @return string
@@ -802,8 +802,8 @@ EOF;
     /**
      * Exports parameters.
      *
-     * @param array $parameters
-     * @param string $path
+     * @param array   $parameters
+     * @param string  $path
      * @param integer $indent
      *
      * @return string
@@ -871,7 +871,7 @@ EOF;
     /**
      * Builds service calls from arguments
      *
-     * @param array  $arguments
+     * @param array $arguments
      * @param string &$calls    By reference
      * @param string &$behavior By reference
      */
@@ -950,7 +950,7 @@ EOF;
      * Checks if a service id has a reference
      *
      * @param string $id
-     * @param array $arguments
+     * @param array  $arguments
      *
      * @return Boolean
      */
@@ -974,7 +974,7 @@ EOF;
     /**
      * Dumps values.
      *
-     * @param array $value
+     * @param array   $value
      * @param Boolean $interpolate
      *
      * @return string
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
similarity index 98%
rename from core/vendor/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
index 6a91b99..113a242 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
@@ -35,7 +35,7 @@ class XmlDumper extends Dumper
     /**
      * Dumps the service container as an XML string.
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string An xml string representing of the service container
      *
@@ -84,7 +84,7 @@ class XmlDumper extends Dumper
     /**
      * Adds method calls.
      *
-     * @param array $methodcalls
+     * @param array      $methodcalls
      * @param DOMElement $parent
      */
     private function addMethodCalls(array $methodcalls, \DOMElement $parent)
@@ -103,7 +103,7 @@ class XmlDumper extends Dumper
      * Adds a service.
      *
      * @param Definition $definition
-     * @param string $id
+     * @param string     $id
      * @param DOMElement $parent
      */
     private function addService($definition, $id, \DOMElement $parent)
@@ -172,8 +172,8 @@ class XmlDumper extends Dumper
     /**
      * Adds a service alias.
      *
-     * @param string $alias
-     * @param string $id
+     * @param string     $alias
+     * @param string     $id
      * @param DOMElement $parent
      */
     private function addServiceAlias($alias, $id, \DOMElement $parent)
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
similarity index 85%
rename from core/vendor/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
index 5768c1e..9717a25 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
@@ -11,11 +11,12 @@
 
 namespace Symfony\Component\DependencyInjection\Dumper;
 
-use Symfony\Component\Yaml\Yaml;
+use Symfony\Component\Yaml\Dumper as YmlDumper;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
  * YamlDumper dumps a service container as a YAML string.
@@ -26,10 +27,26 @@ use Symfony\Component\DependencyInjection\Exception\RuntimeException;
  */
 class YamlDumper extends Dumper
 {
+    private $dumper;
+
+    /**
+     * Constructor.
+     *
+     * @param ContainerBuilder $container The service container to dump
+     *
+     * @api
+     */
+    public function __construct(ContainerBuilder $container)
+    {
+        parent::__construct($container);
+
+        $this->dumper = new YmlDumper();
+    }
+
     /**
      * Dumps the service container as an YAML string.
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string A YAML string representing of the service container
      *
@@ -43,7 +60,7 @@ class YamlDumper extends Dumper
     /**
      * Adds a service
      *
-     * @param string $id
+     * @param string     $id
      * @param Definition $definition
      *
      * @return string
@@ -60,11 +77,11 @@ class YamlDumper extends Dumper
             foreach ($tags as $attributes) {
                 $att = array();
                 foreach ($attributes as $key => $value) {
-                    $att[] = sprintf('%s: %s', Yaml::dump($key), Yaml::dump($value));
+                    $att[] = sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value));
                 }
                 $att = $att ? ', '.implode(' ', $att) : '';
 
-                $tagsCode .= sprintf("            - { name: %s%s }\n", Yaml::dump($name), $att);
+                $tagsCode .= sprintf("            - { name: %s%s }\n", $this->dumper->dump($name), $att);
             }
         }
         if ($tagsCode) {
@@ -84,15 +101,15 @@ class YamlDumper extends Dumper
         }
 
         if ($definition->getArguments()) {
-            $code .= sprintf("        arguments: %s\n", Yaml::dump($this->dumpValue($definition->getArguments()), 0));
+            $code .= sprintf("        arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0));
         }
 
         if ($definition->getProperties()) {
-            $code .= sprintf("        properties: %s\n", Yaml::dump($this->dumpValue($definition->getProperties()), 0));
+            $code .= sprintf("        properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0));
         }
 
         if ($definition->getMethodCalls()) {
-            $code .= sprintf("        calls:\n            %s\n", str_replace("\n", "\n            ", Yaml::dump($this->dumpValue($definition->getMethodCalls()), 1)));
+            $code .= sprintf("        calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12));
         }
 
         if (ContainerInterface::SCOPE_CONTAINER !== $scope = $definition->getScope()) {
@@ -108,7 +125,7 @@ class YamlDumper extends Dumper
                 }
             }
 
-            $code .= sprintf("        configurator: %s\n", Yaml::dump($callable, 0));
+            $code .= sprintf("        configurator: %s\n", $this->dumper->dump($callable, 0));
         }
 
         return $code;
@@ -171,7 +188,7 @@ class YamlDumper extends Dumper
             $parameters = $this->container->getParameterBag()->all();
         }
 
-        return Yaml::dump(array('parameters' => $parameters), 2);
+        return $this->dumper->dump(array('parameters' => $parameters), 2);
     }
 
     /**
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/BadMethodCallException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/BadMethodCallException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/BadMethodCallException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/BadMethodCallException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ExceptionInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ExceptionInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ExceptionInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ExceptionInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/InactiveScopeException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/InactiveScopeException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/InactiveScopeException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/InactiveScopeException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/InvalidArgumentException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/InvalidArgumentException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/InvalidArgumentException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/InvalidArgumentException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/LogicException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/LogicException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/LogicException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/LogicException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/OutOfBoundsException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/OutOfBoundsException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/OutOfBoundsException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/OutOfBoundsException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ParameterCircularReferenceException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ParameterNotFoundException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/RuntimeException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/RuntimeException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/RuntimeException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/RuntimeException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ScopeCrossingInjectionException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ScopeCrossingInjectionException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ScopeCrossingInjectionException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ScopeCrossingInjectionException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ScopeWideningInjectionException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ScopeWideningInjectionException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ScopeWideningInjectionException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ScopeWideningInjectionException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ServiceCircularReferenceException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Exception/ServiceNotFoundException.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
similarity index 90%
rename from core/vendor/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
index b633f90..4f33a9b 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
@@ -23,7 +23,7 @@ interface ConfigurationExtensionInterface
     /**
      * Returns extension configuration
      *
-     * @param array $config    $config    An array of configuration values
+     * @param array            $config    $config    An array of configuration values
      * @param ContainerBuilder $container A ContainerBuilder instance
      *
      * @return ConfigurationInterface|null The configuration or null
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
similarity index 98%
rename from core/vendor/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
index 726652c..0ffc729 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
@@ -24,10 +24,10 @@ interface IntrospectableContainerInterface extends ContainerInterface
      * Check for whether or not a service has been initialized.
      *
      * @param string $id
-     * 
+     *
      * @return Boolean true if the service has been initialized, false otherwise
      *
      */
     function initialized($id);
-    
-}
\ No newline at end of file
+
+}
diff --git a/core/vendor/Symfony/Component/DependencyInjection/LICENSE b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/LICENSE
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LICENSE
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/ClosureLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/ClosureLoader.php
similarity index 94%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/ClosureLoader.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/ClosureLoader.php
index fa24565..775a352 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Loader/ClosureLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/ClosureLoader.php
@@ -49,8 +49,8 @@ class ClosureLoader extends Loader
     /**
      * Returns true if this class supports the given resource.
      *
-     * @param mixed $resource A resource
-     * @param string $type The resource type
+     * @param mixed  $resource A resource
+     * @param string $type     The resource type
      *
      * @return Boolean true if this class supports the given resource, false otherwise
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/FileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/FileLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/FileLoader.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/FileLoader.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php
similarity index 94%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php
index 4eabd6d..e4b99f6 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/IniFileLoader.php
@@ -24,8 +24,8 @@ class IniFileLoader extends FileLoader
     /**
      * Loads a resource.
      *
-     * @param mixed  $file     The resource
-     * @param string $type     The resource type
+     * @param mixed  $file The resource
+     * @param string $type The resource type
      *
      * @throws InvalidArgumentException When ini file is not valid
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
similarity index 92%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
index 98fb2da..3a27d37 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
@@ -44,7 +44,7 @@ class XmlFileLoader extends FileLoader
         $this->container->addResource(new FileResource($path));
 
         // anonymous services
-        $xml = $this->processAnonymousServices($xml, $path);
+        $this->processAnonymousServices($xml, $path);
 
         // imports
         $this->parseImports($xml, $path);
@@ -76,7 +76,7 @@ class XmlFileLoader extends FileLoader
      * Parses parameters
      *
      * @param SimpleXMLElement $xml
-     * @param string $file
+     * @param string           $file
      */
     private function parseParameters(SimpleXMLElement $xml, $file)
     {
@@ -91,7 +91,7 @@ class XmlFileLoader extends FileLoader
      * Parses imports
      *
      * @param SimpleXMLElement $xml
-     * @param string $file
+     * @param string           $file
      */
     private function parseImports(SimpleXMLElement $xml, $file)
     {
@@ -109,7 +109,7 @@ class XmlFileLoader extends FileLoader
      * Parses multiple definitions
      *
      * @param SimpleXMLElement $xml
-     * @param string $file
+     * @param string           $file
      */
     private function parseDefinitions(SimpleXMLElement $xml, $file)
     {
@@ -125,9 +125,9 @@ class XmlFileLoader extends FileLoader
     /**
      * Parses an individual Definition
      *
-     * @param string $id
+     * @param string           $id
      * @param SimpleXMLElement $service
-     * @param string $file
+     * @param string           $file
      */
     private function parseDefinition($id, $service, $file)
     {
@@ -221,37 +221,33 @@ class XmlFileLoader extends FileLoader
      * Processes anonymous services
      *
      * @param SimpleXMLElement $xml
-     * @param string $file
-     *
-     * @return array An array of anonymous services
+     * @param string           $file
      */
     private function processAnonymousServices(SimpleXMLElement $xml, $file)
     {
         $definitions = array();
         $count = 0;
 
-        // anonymous services as arguments
-        if (false === $nodes = $xml->xpath('//container:argument[@type="service"][not(@id)]')) {
-            return $xml;
-        }
-        foreach ($nodes as $node) {
-            // give it a unique name
-            $node['id'] = sprintf('%s_%d', md5($file), ++$count);
+        // anonymous services as arguments/properties
+        if (false !== $nodes = $xml->xpath('//container:argument[@type="service"][not(@id)]|//container:property[@type="service"][not(@id)]')) {
+            foreach ($nodes as $node) {
+                // give it a unique name
+                $node['id'] = sprintf('%s_%d', md5($file), ++$count);
 
-            $definitions[(string) $node['id']] = array($node->service, $file, false);
-            $node->service['id'] = (string) $node['id'];
+                $definitions[(string) $node['id']] = array($node->service, $file, false);
+                $node->service['id'] = (string) $node['id'];
+            }
         }
 
         // anonymous services "in the wild"
-        if (false === $nodes = $xml->xpath('//container:services/container:service[not(@id)]')) {
-            return $xml;
-        }
-        foreach ($nodes as $node) {
-            // give it a unique name
-            $node['id'] = sprintf('%s_%d', md5($file), ++$count);
+        if (false !== $nodes = $xml->xpath('//container:services/container:service[not(@id)]')) {
+            foreach ($nodes as $node) {
+                // give it a unique name
+                $node['id'] = sprintf('%s_%d', md5($file), ++$count);
 
-            $definitions[(string) $node['id']] = array($node, $file, true);
-            $node->service['id'] = (string) $node['id'];
+                $definitions[(string) $node['id']] = array($node, $file, true);
+                $node->service['id'] = (string) $node['id'];
+            }
         }
 
         // resolve definitions
@@ -271,15 +267,13 @@ class XmlFileLoader extends FileLoader
                 $oNode->parentNode->removeChild($oNode);
             }
         }
-
-        return $xml;
     }
 
     /**
      * Validates an XML document.
      *
      * @param DOMDocument $dom
-     * @param string $file
+     * @param string      $file
      */
     private function validate(\DOMDocument $dom, $file)
     {
@@ -291,7 +285,7 @@ class XmlFileLoader extends FileLoader
      * Validates a documents XML schema.
      *
      * @param \DOMDocument $dom
-     * @param string $file
+     * @param string       $file
      *
      * @throws RuntimeException         When extension references a non-existent XSD file
      * @throws InvalidArgumentException When XML doesn't validate its XSD schema
@@ -365,7 +359,7 @@ EOF
      * Validates an extension.
      *
      * @param \DOMDocument $dom
-     * @param string $file
+     * @param string       $file
      *
      * @throws InvalidArgumentException When no extension is found corresponding to a tag
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
similarity index 98%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
index e163219..63f3893 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
@@ -81,7 +81,7 @@ class YamlFileLoader extends FileLoader
     /**
      * Parses all imports
      *
-     * @param array $content
+     * @param array  $content
      * @param string $file
      */
     private function parseImports($content, $file)
@@ -99,7 +99,7 @@ class YamlFileLoader extends FileLoader
     /**
      * Parses definitions
      *
-     * @param array $content
+     * @param array  $content
      * @param string $file
      */
     private function parseDefinitions($content, $file)
@@ -117,7 +117,7 @@ class YamlFileLoader extends FileLoader
      * Parses a definition.
      *
      * @param string $id
-     * @param array $service
+     * @param array  $service
      * @param string $file
      */
     private function parseDefinition($id, $service, $file)
@@ -239,7 +239,7 @@ class YamlFileLoader extends FileLoader
     /**
      * Validates a YAML file.
      *
-     * @param mixed $content
+     * @param mixed  $content
      * @param string $file
      *
      * @return array
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
similarity index 98%
rename from core/vendor/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
index 7d46e8c..316f2d7 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
@@ -118,6 +118,9 @@
   </xsd:complexType>
 
   <xsd:complexType name="property" mixed="true">
+    <xsd:choice minOccurs="0" maxOccurs="1">
+      <xsd:element name="service" type="service" />
+    </xsd:choice>
     <xsd:attribute name="type" type="argument_type" />
     <xsd:attribute name="id" type="xsd:string" />
     <xsd:attribute name="name" type="xsd:string" />
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Parameter.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Parameter.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Parameter.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Parameter.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
index dade577..a83f1fc 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
@@ -115,7 +115,7 @@ class ParameterBag implements ParameterBagInterface
     /**
      * Returns true if a parameter name is defined.
      *
-     * @param  string  $name       The parameter name
+     * @param string $name The parameter name
      *
      * @return Boolean true if the parameter name is defined, false otherwise
      *
@@ -127,6 +127,18 @@ class ParameterBag implements ParameterBagInterface
     }
 
     /**
+     * Removes a parameter.
+     *
+     * @param string $key The key
+     *
+     * @api
+     */
+    public function remove($key)
+    {
+        unset($this->parameters[$key]);
+    }
+
+    /**
      * Replaces parameter placeholders (%name%) by their values for all parameters.
      */
     public function resolve()
@@ -154,7 +166,7 @@ class ParameterBag implements ParameterBagInterface
     /**
      * Replaces parameter placeholders (%name%) by their values.
      *
-     * @param mixed $value A value
+     * @param mixed $value     A value
      * @param array $resolving An array of keys that are being resolved (used internally to detect circular references)
      *
      * @return mixed The resolved value
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
similarity index 95%
rename from core/vendor/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
index b530d5d..da83cbe 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
@@ -73,7 +73,7 @@ interface ParameterBagInterface
     /**
      * Returns true if a parameter name is defined.
      *
-     * @param  string  $name       The parameter name
+     * @param string $name The parameter name
      *
      * @return Boolean true if the parameter name is defined, false otherwise
      *
@@ -89,7 +89,7 @@ interface ParameterBagInterface
     /**
      * Replaces parameter placeholders (%name%) by their values.
      *
-     * @param  mixed $value A value
+     * @param mixed $value A value
      *
      * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/README.md b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md
similarity index 84%
rename from core/vendor/Symfony/Component/DependencyInjection/README.md
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md
index 06ebe3d..5cb62cf 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/README.md
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md
@@ -48,8 +48,8 @@ If your service is retrieved by calling a static method:
 
 File Include:
 
-For some services, especially those that are difficult or impossible to 
-autoload, you may need the container to include a file before 
+For some services, especially those that are difficult or impossible to
+autoload, you may need the container to include a file before
 instantiating your class.
 
     $sc = new ContainerBuilder();
@@ -68,11 +68,9 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit -c src/Symfony/Component/DependencyInjection/
+    phpunit
 
 If you also want to run the unit tests that depend on other Symfony
-Components, declare the following environment variables before running
-PHPUnit:
+Components, install dev dependencies before running PHPUnit:
 
-    export SYMFONY_CONFIG=../path/to/Config
-    export SYMFONY_YAML=../path/to/Yaml
+    php composer.phar install --dev
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Reference.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Reference.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Scope.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Scope.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Scope.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Scope.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/ScopeInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ScopeInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/ScopeInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ScopeInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/SimpleXMLElement.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/SimpleXMLElement.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/SimpleXMLElement.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/SimpleXMLElement.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/TaggedContainerInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/TaggedContainerInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/TaggedContainerInterface.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/TaggedContainerInterface.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
similarity index 91%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
index 5257781..c99659e 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
@@ -45,12 +45,19 @@ class AnalyzeServiceReferencesPassTest extends \PHPUnit_Framework_TestCase
             ->setProperty('foo', $ref5 = new Reference('b'))
         ;
 
+        $e = $container
+            ->register('e')
+            ->setConfigurator(array($ref6 = new Reference('b'), 'methodName'))
+        ;
+
         $graph = $this->process($container);
 
-        $this->assertCount(3, $edges = $graph->getNode('b')->getInEdges());
+        $this->assertCount(4, $edges = $graph->getNode('b')->getInEdges());
+
         $this->assertSame($ref1, $edges[0]->getValue());
         $this->assertSame($ref4, $edges[1]->getValue());
         $this->assertSame($ref5, $edges[2]->getValue());
+        $this->assertSame($ref6, $edges[3]->getValue());
     }
 
     public function testProcessDetectsReferencesFromInlinedDefinitions()
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveInvalidReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveInvalidReferencesPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveInvalidReferencesPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveInvalidReferencesPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/ContainerTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/GraphvizDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/GraphvizDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/GraphvizDumperTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/GraphvizDumperTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container8.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services1.dot b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services1.dot
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services1.dot
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services1.dot
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10-1.dot b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10-1.dot
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10-1.dot
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10-1.dot
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10.dot b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10.dot
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10.dot
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services10.dot
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectExtension.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectExtension.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectExtension.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectExtension.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtension.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtension.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtension.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtension.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/createphar.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/createphar.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/createphar.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/createphar.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/foo.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/foo.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/foo.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/foo.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/schema/project-1.0.xsd b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/schema/project-1.0.xsd
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/schema/project-1.0.xsd
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/schema/project-1.0.xsd
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/nonvalid.ini b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/nonvalid.ini
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/nonvalid.ini
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/nonvalid.ini
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters.ini b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters.ini
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters.ini
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters.ini
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters1.ini b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters1.ini
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters1.ini
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters1.ini
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters2.ini b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters2.ini
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters2.ini
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/ini/parameters2.ini
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
similarity index 99%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
index 5ab7bab..c1513b6 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
@@ -104,6 +104,7 @@ class ProjectServiceContainer extends Container
     protected function getFooBarService()
     {
         $class = $this->getParameter('foo_class');
+
         return $this->services['foo_bar'] = new $class();
     }
 
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/simple.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/simple.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/php/simple.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/simple.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension1/services.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension1/services.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension1/services.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension1/services.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension2/services.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension2/services.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension2/services.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extension2/services.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services1.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services1.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services1.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services1.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services2.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services2.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services2.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services2.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services3.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services3.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services3.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services3.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services4.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services4.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services4.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services4.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services5.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services5.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services5.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services5.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services6.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services6.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services6.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services6.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services7.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services7.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services7.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/extensions/services7.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/nonvalid.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/nonvalid.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/nonvalid.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/nonvalid.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services1.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services1.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services1.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services1.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services13.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services13.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services13.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services13.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services3.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services3.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services3.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services3.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4_bad_import.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4_bad_import.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4_bad_import.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services4_bad_import.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services5.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services5.xml
similarity index 85%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services5.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services5.xml
index 787b4ef..acb93e7 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services5.xml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services5.xml
@@ -13,6 +13,9 @@
           </argument>
         </service>
       </argument>
+      <property name="p" type="service">
+        <service class="BazClass" />
+      </property>
     </service>
   </services>
 </container>
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services7.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services7.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services7.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services7.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services8.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag1.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag1.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag1.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag1.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag2.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag2.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag2.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag2.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid1.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid1.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid1.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid1.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid2.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid2.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid2.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/nonvalid2.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services1.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services1.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services1.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services1.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services10.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services10.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services10.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services10.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services11.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services11.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services11.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services11.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services13.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services13.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services13.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services13.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services2.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services3.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services3.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services3.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services3.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4_bad_import.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4_bad_import.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4_bad_import.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4_bad_import.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services7.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services7.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services7.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services7.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services8.yml
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
similarity index 97%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
index 2aa47a5..0fd2ae3 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
@@ -15,7 +15,7 @@ services:
         calls:
             - [setBar, ['@bar']]
             - [initialize, {  }]
-            
+
         scope: prototype
         configurator: sc_configure
     bar:
@@ -36,7 +36,7 @@ services:
             - [setBar, ['@?foo2']]
             - [setBar, ['@?foo3']]
             - [setBar, ['@?foobaz']]
-            
+
     factory_service:
         factory_method: getInstance
         factory_service: foo.baz
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
index 12fa718..1a157e6 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
@@ -122,7 +122,9 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
         $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
         $loader->load('services5.xml');
         $services = $container->getDefinitions();
-        $this->assertEquals(3, count($services), '->load() attributes unique ids to anonymous services');
+        $this->assertEquals(4, count($services), '->load() attributes unique ids to anonymous services');
+
+        // anonymous service as an argument
         $args = $services['foo']->getArguments();
         $this->assertEquals(1, count($args), '->load() references anonymous services as "normal" ones');
         $this->assertEquals('Symfony\\Component\\DependencyInjection\\Reference', get_class($args[0]), '->load() converts anonymous services to references to "normal" services');
@@ -130,12 +132,21 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
         $inner = $services[(string) $args[0]];
         $this->assertEquals('BarClass', $inner->getClass(), '->load() uses the same configuration as for the anonymous ones');
 
+        // inner anonymous services
         $args = $inner->getArguments();
         $this->assertEquals(1, count($args), '->load() references anonymous services as "normal" ones');
         $this->assertEquals('Symfony\\Component\\DependencyInjection\\Reference', get_class($args[0]), '->load() converts anonymous services to references to "normal" services');
         $this->assertTrue(isset($services[(string) $args[0]]), '->load() makes a reference to the created ones');
         $inner = $services[(string) $args[0]];
         $this->assertEquals('BazClass', $inner->getClass(), '->load() uses the same configuration as for the anonymous ones');
+
+        // anonymous service as a property
+        $properties = $services['foo']->getProperties();
+        $property = $properties['p'];
+        $this->assertEquals('Symfony\\Component\\DependencyInjection\\Reference', get_class($property), '->load() converts anonymous services to references to "normal" services');
+        $this->assertTrue(isset($services[(string) $property]), '->load() makes a reference to the created ones');
+        $inner = $services[(string) $property];
+        $this->assertEquals('BazClass', $inner->getClass(), '->load() uses the same configuration as for the anonymous ones');
     }
 
     public function testLoadServices()
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
similarity index 96%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
index 5f5f265..29d2380 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
@@ -44,6 +44,19 @@ class ParameterBagTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
+     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::remove
+     */
+    public function testRemove()
+    {
+        $bag = new ParameterBag(array(
+            'foo' => 'foo',
+            'bar' => 'bar',
+        ));
+        $bag->remove('foo');
+        $this->assertEquals(array('bar' => 'bar'), $bag->all(), '->remove() removes a parameter');
+    }
+
+    /**
      * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::get
      * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::set
      */
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/ParameterTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ParameterTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/ReferenceTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ReferenceTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/ReferenceTest.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ReferenceTest.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Tests/bootstrap.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/bootstrap.php
similarity index 56%
rename from core/vendor/Symfony/Component/DependencyInjection/Tests/bootstrap.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/bootstrap.php
index 77fe275..fd3118f 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/Tests/bootstrap.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/bootstrap.php
@@ -10,20 +10,13 @@
  */
 
 spl_autoload_register(function ($class) {
-    foreach (array(
-        'SYMFONY_CONFIG' => 'Config',
-        'SYMFONY_YAML'   => 'Yaml',
-    ) as $env => $name) {
-        if (isset($_SERVER[$env]) && 0 === strpos(ltrim($class, '/'), 'Symfony\Component\\'.$name)) {
-            if (file_exists($file = $_SERVER[$env].'/'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\\'.$name)).'.php')) {
-                require_once $file;
-            }
-        }
-    }
-
     if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\DependencyInjection')) {
         if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\DependencyInjection')).'.php')) {
             require_once $file;
         }
     }
 });
+
+if (file_exists($loader = __DIR__.'/../vendor/autoload.php')) {
+    require_once $loader;
+}
diff --git a/core/vendor/Symfony/Component/DependencyInjection/Variable.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php
similarity index 100%
rename from core/vendor/Symfony/Component/DependencyInjection/Variable.php
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php
diff --git a/core/vendor/Symfony/Component/DependencyInjection/composer.json b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
similarity index 87%
rename from core/vendor/Symfony/Component/DependencyInjection/composer.json
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
index adf6f11..7238bd0 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/composer.json
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
@@ -16,7 +16,11 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
+    },
+    "require-dev": {
+        "symfony/yaml": "2.1.*",
+        "symfony/config": "2.1.*"
     },
     "suggest": {
         "symfony/yaml": "self.version",
diff --git a/core/vendor/Symfony/Component/DependencyInjection/phpunit.xml.dist b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist
similarity index 94%
rename from core/vendor/Symfony/Component/DependencyInjection/phpunit.xml.dist
rename to core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist
index bb81f45..554d104 100644
--- a/core/vendor/Symfony/Component/DependencyInjection/phpunit.xml.dist
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist
@@ -23,6 +23,7 @@
             <exclude>
                 <directory>./Resources</directory>
                 <directory>./Tests</directory>
+                <directory>./vendor</directory>
             </exclude>
         </whitelist>
     </filter>
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore
new file mode 100644
index 0000000..d1502b0
--- /dev/null
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/.gitignore
@@ -0,0 +1,2 @@
+vendor/
+composer.lock
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/CHANGELOG.md b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/CHANGELOG.md
new file mode 100644
index 0000000..21bc2ac
--- /dev/null
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/CHANGELOG.md
@@ -0,0 +1,15 @@
+CHANGELOG
+=========
+
+2.1.0
+-----
+
+ * added TraceableEventDispatcherInterface
+ * added ContainerAwareEventDispatcher
+ * added a reference to the EventDispatcher on the Event
+ * added a reference to the Event name on the event
+ * added fluid interface to the dispatch() method which now returns the Event
+   object
+ * added GenericEvent event class
+ * added the possibility for subscribers to subscribe several times for the
+   same event
diff --git a/core/vendor/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
similarity index 96%
rename from core/vendor/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
index 53a0f67..e891edd 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
@@ -54,10 +54,10 @@ class ContainerAwareEventDispatcher extends EventDispatcher
     /**
      * Adds a service as event listener
      *
-     * @param string   $eventName Event for which the listener is added
-     * @param array    $callback  The service ID of the listener service & the method
+     * @param string $eventName Event for which the listener is added
+     * @param array  $callback  The service ID of the listener service & the method
      *                            name that has to be called
-     * @param integer  $priority  The higher this value, the earlier an event listener
+     * @param integer $priority The higher this value, the earlier an event listener
      *                            will be triggered in the chain.
      *                            Defaults to 0.
      */
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Event.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/Event.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/EventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
similarity index 96%
rename from core/vendor/Symfony/Component/EventDispatcher/EventDispatcher.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
index b2fb51a..356f919 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/EventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
@@ -155,8 +155,8 @@ class EventDispatcher implements EventDispatcherInterface
      * for each listener.
      *
      * @param array[callback] $listeners The event listeners.
-     * @param string $eventName The name of the event to dispatch.
-     * @param Event $event The event object to pass to the event handlers/listeners.
+     * @param string          $eventName The name of the event to dispatch.
+     * @param Event           $event     The event object to pass to the event handlers/listeners.
      */
     protected function doDispatch($listeners, $eventName, Event $event)
     {
diff --git a/core/vendor/Symfony/Component/EventDispatcher/EventDispatcherInterface.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
similarity index 97%
rename from core/vendor/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
index d47ee66..e53d71d 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
@@ -28,7 +28,7 @@ interface EventDispatcherInterface
      * @param string $eventName The name of the event to dispatch. The name of
      *                          the event is the name of the method that is
      *                          invoked on listeners.
-     * @param Event  $event     The event to pass to the event handlers/listeners.
+     * @param Event $event The event to pass to the event handlers/listeners.
      *                          If not supplied, an empty Event instance is created.
      *
      * @return Event
diff --git a/core/vendor/Symfony/Component/EventDispatcher/EventSubscriberInterface.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/GenericEvent.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
similarity index 96%
rename from core/vendor/Symfony/Component/EventDispatcher/GenericEvent.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
index 0e792d0..0ad76ee 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/GenericEvent.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
@@ -37,8 +37,8 @@ class GenericEvent extends Event implements \ArrayAccess
     /**
      * Encapsulate an event with $subject, $args, and $data.
      *
-     * @param mixed  $subject   The subject of the event, usually an object.
-     * @param array  $arguments Arguments to store in the event.
+     * @param mixed $subject   The subject of the event, usually an object.
+     * @param array $arguments Arguments to store in the event.
      */
     public function __construct($subject = null, array $arguments = array())
     {
diff --git a/core/vendor/Symfony/Component/EventDispatcher/LICENSE b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/LICENSE
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE
diff --git a/core/vendor/Symfony/Component/EventDispatcher/README.md b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md
similarity index 68%
rename from core/vendor/Symfony/Component/EventDispatcher/README.md
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md
index 421b8c6..a2bcfca 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/README.md
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md
@@ -20,11 +20,9 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit -c src/Symfony/Component/EventDispatcher/
+    phpunit
 
 If you also want to run the unit tests that depend on other Symfony
-Components, declare the following environment variables before running
-PHPUnit:
+Components, install dev dependencies before running PHPUnit:
 
-    export SYMFONY_DEPENDENCY_INJECTION=../path/to/DependencyInjection
-    export SYMFONY_HTTP_KERNEL=../path/to/HttpKernel
+    php composer.phar install --dev
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Tests/EventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/Tests/EventTest.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
diff --git a/core/vendor/Symfony/Component/EventDispatcher/Tests/bootstrap.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/bootstrap.php
similarity index 53%
rename from core/vendor/Symfony/Component/EventDispatcher/Tests/bootstrap.php
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/bootstrap.php
index b71ee52..033180f 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/Tests/bootstrap.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/bootstrap.php
@@ -10,20 +10,13 @@
  */
 
 spl_autoload_register(function ($class) {
-    foreach (array(
-        'SYMFONY_DEPENDENCY_INJECTION' => 'DependencyInjection',
-        'SYMFONY_HTTP_KERNEL'          => 'HttpKernel',
-    ) as $env => $name) {
-        if (isset($_SERVER[$env]) && 0 === strpos(ltrim($class, '/'), 'Symfony\Component\\'.$name)) {
-            if (file_exists($file = $_SERVER[$env].'/'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\\'.$name)).'.php')) {
-                require_once $file;
-            }
-        }
-    }
-
     if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\EventDispatcher')) {
         if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\EventDispatcher')).'.php')) {
             require_once $file;
         }
     }
 });
+
+if (file_exists($loader = __DIR__.'/../vendor/autoload.php')) {
+    require_once $loader;
+}
diff --git a/core/vendor/Symfony/Component/EventDispatcher/composer.json b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
similarity index 89%
rename from core/vendor/Symfony/Component/EventDispatcher/composer.json
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
index d93d09f..9a34819 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/composer.json
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
@@ -16,7 +16,10 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
+    },
+    "require-dev": {
+        "symfony/dependency-injection": "2.1.*"
     },
     "suggest": {
         "symfony/dependency-injection": "self.version",
diff --git a/core/vendor/Symfony/Component/EventDispatcher/phpunit.xml.dist b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist
similarity index 94%
rename from core/vendor/Symfony/Component/EventDispatcher/phpunit.xml.dist
rename to core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist
index cb261a4..c557135 100644
--- a/core/vendor/Symfony/Component/EventDispatcher/phpunit.xml.dist
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist
@@ -23,6 +23,7 @@
             <exclude>
                 <directory>./Resources</directory>
                 <directory>./Tests</directory>
+                <directory>./vendor</directory>
             </exclude>
         </whitelist>
     </filter>
diff --git a/core/vendor/Symfony/Component/HttpFoundation/ApacheRequest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ApacheRequest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/ApacheRequest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ApacheRequest.php
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md
new file mode 100644
index 0000000..0309a51
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md
@@ -0,0 +1,76 @@
+CHANGELOG
+=========
+
+2.1.0
+-----
+
+ * added a fluent interface to the Response class
+ * added Request::isProxyTrusted()
+ * added JsonResponse
+ * added a getTargetUrl method to RedirectResponse
+ * added support for streamed responses
+ * made Response::prepare() method the place to enforce HTTP specification
+ * [BC BREAK] moved management of the locale from the Session class to the Request class
+ * added a generic access to the PHP built-in filter mechanism: ParameterBag::filter()
+ * made FileBinaryMimeTypeGuesser command configurable
+ * added Request::getUser() and Request::getPassword()
+ * added support for the PATCH method in Request
+ * removed the ContentTypeMimeTypeGuesser class as it is deprecated and never used on PHP 5.3
+ * added ResponseHeaderBag::makeDisposition() (implements RFC 6266)
+ * made mimetype to extension conversion configurable
+ * [BC BREAK] Moved all session related classes and interfaces into own namespace, as
+   `Symfony\Component\HttpFoundation\Session` and renamed classes accordingly.
+   Session handlers are located in the subnamespace `Symfony\Component\HttpFoundation\Session\Handler`.
+ * SessionHandlers must implement `\SessionHandlerInterface` or extend from the
+   `Symfony\Component\HttpFoundation\Storage\Handler\NativeSessionHandler` base class.
+ * Added internal storage driver proxy mechanism for forward compatibility with
+   PHP 5.4 `\SessionHandler` class.
+ * Added session handlers for PHP native MongoDb, Memcache, Memcached, Redis and SQLite session
+   save handlers.
+ * Added session handlers for custom Memcache, Memcached and Null session save handlers.
+ * [BC BREAK] Removed `NativeSessionStorage` and replaced with `NativeFileSessionHandler`.
+ * [BC BREAK] `SessionStorageInterface` methods removed: `write()`, `read()` and
+   `remove()`.  Added `getBag()`, `registerBag()`.  The `NativeSessionStorage` class
+   is a mediator for the session storage internals including the session handlers
+   which do the real work of participating in the internal PHP session workflow.
+ * [BC BREAK] Introduced mock implementations of `SessionStorage` to enable unit
+   and functional testing without starting real PHP sessions.  Removed
+   `ArraySessionStorage`, and replaced with `MockArraySessionStorage` for unit
+   tests; removed `FilesystemSessionStorage`, and replaced with`MockFileSessionStorage`
+   for functional tests.  These do not interact with global session ini
+   configuration values, session functions or `$_SESSION` superglobal. This means
+   they can be configured directly allowing multiple instances to work without
+   conflicting in the same PHP process.
+ * [BC BREAK] Removed the `close()` method from the `Session` class, as this is
+   now redundant.
+ * Deprecated the following methods from the Session class: `setFlash()`, `setFlashes()`
+   `getFlash()`, `hasFlash()`, and `removeFlash()`. Use `getFlashBag()` instead
+   which returns a `FlashBagInterface`.
+ * `Session->clear()` now only clears session attributes as before it cleared
+   flash messages and attributes. `Session->getFlashBag()->all()` clears flashes now.
+ * Session data is now managed by `SessionBagInterface` to better encapsulate
+   session data.
+ * Refactored session attribute and flash messages system to their own
+  `SessionBagInterface` implementations.
+ * Added `FlashBag`. Flashes expire when retrieved by `get()` or `all()`. This
+   implementation is ESI compatible.
+ * Added `AutoExpireFlashBag` (default) to replicate Symfony 2.0.x auto expire
+   behaviour of messages auto expiring.
+   after one page page load.  Messages must be retrieved by `get()` or `all()`.
+ * Added `Symfony\Component\HttpFoundation\Attribute\AttributeBag` to replicate
+   attributes storage behaviour from 2.0.x (default).
+ * Added `Symfony\Component\HttpFoundation\Attribute\NamespacedAttributeBag` for
+   namespace session attributes.
+ * Flash API can stores messages in an array so there may be multiple messages
+   per flash type.  The old `Session` class API remains without BC break as it
+   will allow single messages as before.
+ * Added basic session meta-data to the session to record session create time,
+   last updated time, and the lifetime of the session cookie that was provided
+   to the client.
+ * Request::getClientIp() method doesn't take a parameter anymore but bases
+   itself on the trustProxy parameter.
+ * Added isMethod() to Request object.
+ * [BC BREAK] The methods `getPathInfo()`, `getBaseUrl()` and `getBasePath()` of
+   a `Request` now all return a raw value (vs a urldecoded value before). Any call
+   to one of these methods must be checked and wrapped in a `rawurldecode()` if
+   needed.
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Cookie.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php
similarity index 85%
rename from core/vendor/Symfony/Component/HttpFoundation/Cookie.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php
index 0511162..47c2199 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Cookie.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php
@@ -31,13 +31,13 @@ class Cookie
     /**
      * Constructor.
      *
-     * @param string                    $name       The name of the cookie
-     * @param string                    $value      The value of the cookie
-     * @param integer|string|\DateTime  $expire     The time the cookie expires
-     * @param string                    $path       The path on the server in which the cookie will be available on
-     * @param string                    $domain     The domain that the cookie is available to
-     * @param Boolean                   $secure     Whether the cookie should only be transmitted over a secure HTTPS connection from the client
-     * @param Boolean                   $httpOnly   Whether the cookie will be made accessible only through the HTTP protocol
+     * @param string                   $name     The name of the cookie
+     * @param string                   $value    The value of the cookie
+     * @param integer|string|\DateTime $expire   The time the cookie expires
+     * @param string                   $path     The path on the server in which the cookie will be available on
+     * @param string                   $domain   The domain that the cookie is available to
+     * @param Boolean                  $secure   Whether the cookie should only be transmitted over a secure HTTPS connection from the client
+     * @param Boolean                  $httpOnly Whether the cookie will be made accessible only through the HTTP protocol
      *
      * @api
      */
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php
similarity index 91%
rename from core/vendor/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php
index 9c7fe68..b97dfb3 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/AccessDeniedException.php
@@ -21,7 +21,7 @@ class AccessDeniedException extends FileException
     /**
      * Constructor.
      *
-     * @param string $path  The path to the accessed file
+     * @param string $path The path to the accessed file
      */
     public function __construct($path)
     {
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/FileException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/Exception/FileException.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileException.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
similarity index 90%
rename from core/vendor/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
index 5b1aef8..c9a41f7 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
@@ -21,7 +21,7 @@ class FileNotFoundException extends FileException
     /**
      * Constructor.
      *
-     * @param string $path  The path to the file that was not found
+     * @param string $path The path to the file that was not found
      */
     public function __construct($path)
     {
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UnexpectedTypeException.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/Exception/UploadException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UploadException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/Exception/UploadException.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UploadException.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/File.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/File.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/File/File.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/File.php
index 20a80ca..d8ab4ac 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/File.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/File.php
@@ -122,7 +122,7 @@ class File extends \SplFileInfo
             throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error['message'])));
         }
 
-        chmod($target, 0666 & ~umask());
+        @chmod($target, 0666 & ~umask());
 
         return new File($target);
     }
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
index b73cd99..dcea613 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
@@ -82,7 +82,7 @@ class ExtensionGuesser implements ExtensionGuesserInterface
      * returns a value that is not NULL, this method terminates and returns the
      * value.
      *
-     * @param  string $mimeType   The mime type
+     * @param string $mimeType The mime type
      * @return string             The guessed extension or NULL, if none could be guessed
      */
     public function guess($mimeType)
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
similarity index 92%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
index 5b14ef9..e8db065 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
@@ -19,7 +19,7 @@ interface ExtensionGuesserInterface
     /**
      * Makes a best guess for a file extension, given a mime type
      *
-     * @param  string $mimeType   The mime type
+     * @param string $mimeType The mime type
      * @return string             The guessed extension or NULL, if none could be guessed
      */
     function guess($mimeType);
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeExtensionGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeExtensionGuesser.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeExtensionGuesser.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeExtensionGuesser.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
index d73a093..fe41ed8 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
@@ -92,7 +92,7 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface
      * returns a value that is not NULL, this method terminates and returns the
      * value.
      *
-     * @param  string $path   The path to the file
+     * @param string $path The path to the file
      *
      * @return string         The mime type or NULL, if none could be guessed
      *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
similarity index 93%
rename from core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
index 66178bb..ddb8c69 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
@@ -21,7 +21,7 @@ interface MimeTypeGuesserInterface
     /**
      * Guesses the mime type of the file with the given path.
      *
-     * @param  string $path   The path to the file
+     * @param string $path The path to the file
      *
      * @return string         The mime type or NULL, if none could be guessed
      *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/File/UploadedFile.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/File/UploadedFile.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/FileBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/FileBag.php
similarity index 97%
rename from core/vendor/Symfony/Component/HttpFoundation/FileBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/FileBag.php
index 702ab84..0f85eb0 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/FileBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/FileBag.php
@@ -80,7 +80,7 @@ class FileBag extends ParameterBag
     /**
      * Converts uploaded files to UploadedFile instances.
      *
-     * @param  array|UploadedFile $file A (multi-dimensional) array of uploaded file information
+     * @param array|UploadedFile $file A (multi-dimensional) array of uploaded file information
      *
      * @return array A (multi-dimensional) array of UploadedFile instances
      */
@@ -121,7 +121,7 @@ class FileBag extends ParameterBag
      * It's safe to pass an already converted array, in which case this method
      * just returns the original array unmodified.
      *
-     * @param  array $data
+     * @param array $data
      *
      * @return array
      */
diff --git a/core/vendor/Symfony/Component/HttpFoundation/HeaderBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/HeaderBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
index 88ad1af..cb34012 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/HeaderBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
@@ -90,7 +90,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
     /**
      * Replaces the current HTTP headers by a new set.
      *
-     * @param array  $headers An array of HTTP headers
+     * @param array $headers An array of HTTP headers
      *
      * @api
      */
@@ -103,7 +103,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
     /**
      * Adds new headers the current HTTP headers set.
      *
-     * @param array  $headers An array of HTTP headers
+     * @param array $headers An array of HTTP headers
      *
      * @api
      */
diff --git a/core/vendor/Symfony/Component/HttpFoundation/JsonResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
similarity index 93%
rename from core/vendor/Symfony/Component/HttpFoundation/JsonResponse.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
index d30899f..0551e75 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/JsonResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
@@ -24,9 +24,9 @@ class JsonResponse extends Response
     /**
      * Constructor.
      *
-     * @param mixed   $data     The response data
-     * @param integer $status   The response status code
-     * @param array   $headers  An array of response headers
+     * @param mixed   $data    The response data
+     * @param integer $status  The response status code
+     * @param array   $headers An array of response headers
      */
     public function __construct($data = array(), $status = 200, $headers = array())
     {
diff --git a/core/vendor/Symfony/Component/HttpFoundation/LICENSE b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/LICENSE
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/LICENSE
diff --git a/core/vendor/Symfony/Component/HttpFoundation/ParameterBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
similarity index 94%
rename from core/vendor/Symfony/Component/HttpFoundation/ParameterBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
index b4fa676..a39756e 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/ParameterBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
@@ -92,7 +92,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
      *
      * @param string  $path    The key
      * @param mixed   $default The default value if the parameter key does not exist
-     * @param boolean $deep If true, a path like foo[bar] will find deeper items
+     * @param boolean $deep    If true, a path like foo[bar] will find deeper items
      *
      * @api
      */
@@ -189,7 +189,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
      *
      * @param string  $key     The parameter key
      * @param mixed   $default The default value if the parameter key does not exist
-     * @param boolean $deep If true, a path like foo[bar] will find deeper items
+     * @param boolean $deep    If true, a path like foo[bar] will find deeper items
      *
      * @return string The filtered value
      *
@@ -205,7 +205,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
      *
      * @param string  $key     The parameter key
      * @param mixed   $default The default value if the parameter key does not exist
-     * @param boolean $deep If true, a path like foo[bar] will find deeper items
+     * @param boolean $deep    If true, a path like foo[bar] will find deeper items
      *
      * @return string The filtered value
      *
@@ -221,7 +221,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
      *
      * @param string  $key     The parameter key
      * @param mixed   $default The default value if the parameter key does not exist
-     * @param boolean $deep If true, a path like foo[bar] will find deeper items
+     * @param boolean $deep    If true, a path like foo[bar] will find deeper items
      *
      * @return string The filtered value
      *
@@ -238,7 +238,7 @@ class ParameterBag implements \IteratorAggregate, \Countable
      *
      * @param string  $key     The parameter key
      * @param mixed   $default The default value if the parameter key does not exist
-     * @param boolean $deep If true, a path like foo[bar] will find deeper items
+     * @param boolean $deep    If true, a path like foo[bar] will find deeper items
      *
      * @return integer The filtered value
      *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/README.md b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md
similarity index 96%
rename from core/vendor/Symfony/Component/HttpFoundation/README.md
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md
index 8e5d8cf..bb6f02c 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/README.md
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md
@@ -43,4 +43,4 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit -c src/Symfony/Component/HttpFoundation/
+    phpunit
diff --git a/core/vendor/Symfony/Component/HttpFoundation/RedirectResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/RedirectResponse.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Request.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/Request.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
index b4fd7ac..9e35de8 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Request.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
@@ -470,9 +470,9 @@ class Request
      * It is better to explicity get request parameters from the appropriate
      * public property instead (query, request, attributes, ...).
      *
-     * @param string    $key        the key
-     * @param mixed     $default    the default value
-     * @param type      $deep       is parameter deep in multidimensional array
+     * @param string $key     the key
+     * @param mixed  $default the default value
+     * @param type   $deep    is parameter deep in multidimensional array
      *
      * @return mixed
      */
@@ -659,9 +659,9 @@ class Request
     {
         if (self::$trustProxy && $this->headers->has('X-Forwarded-Port')) {
             return $this->headers->get('X-Forwarded-Port');
-        } else {
-            return $this->server->get('SERVER_PORT');
         }
+
+        return $this->server->get('SERVER_PORT');
     }
 
     /**
@@ -884,7 +884,7 @@ class Request
     /**
      * Gets the mime type associated with the format.
      *
-     * @param  string $format  The format
+     * @param string $format The format
      *
      * @return string The associated mime type (null if not found)
      *
@@ -902,7 +902,7 @@ class Request
     /**
      * Gets the format associated with the mime type.
      *
-     * @param  string $mimeType  The associated mime type
+     * @param string $mimeType The associated mime type
      *
      * @return string The format (null if not found)
      *
@@ -930,8 +930,8 @@ class Request
     /**
      * Associates a format with mime types.
      *
-     * @param string       $format     The format
-     * @param string|array $mimeTypes  The associated mime types (the preferred one must be the first as it will be used as the content type)
+     * @param string       $format    The format
+     * @param string|array $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type)
      *
      * @api
      */
@@ -953,7 +953,7 @@ class Request
      *  * _format request parameter
      *  * $default
      *
-     * @param string  $default     The default format
+     * @param string $default The default format
      *
      * @return string The request format
      *
@@ -1053,7 +1053,7 @@ class Request
     /**
      * Returns the request body content.
      *
-     * @param  Boolean $asResource If true, a resource will be returned
+     * @param Boolean $asResource If true, a resource will be returned
      *
      * @return string|resource The request body content or a resource to read the body stream.
      */
@@ -1094,7 +1094,7 @@ class Request
     /**
      * Returns the preferred language.
      *
-     * @param  array  $locales  An array of ordered available locales
+     * @param array $locales An array of ordered available locales
      *
      * @return string|null The preferred locale
      *
@@ -1209,7 +1209,7 @@ class Request
     /**
      * Splits an Accept-* HTTP header.
      *
-     * @param string $header  Header to split
+     * @param string $header Header to split
      *
      * @return array Array indexed by the values of the Accept-* header in preferred order
      */
diff --git a/core/vendor/Symfony/Component/HttpFoundation/RequestMatcher.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestMatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/RequestMatcher.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestMatcher.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/RequestMatcherInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestMatcherInterface.php
similarity index 91%
rename from core/vendor/Symfony/Component/HttpFoundation/RequestMatcherInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestMatcherInterface.php
index 506ec79..0ee161c 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/RequestMatcherInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestMatcherInterface.php
@@ -23,7 +23,7 @@ interface RequestMatcherInterface
     /**
      * Decides whether the rule(s) implemented by the strategy matches the supplied request.
      *
-     * @param  Request $request The request to check for a match
+     * @param Request $request The request to check for a match
      *
      * @return Boolean true if the request matches, false otherwise
      *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
similarity index 97%
rename from core/vendor/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
index 4378b81..11fcf3b 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
@@ -12,7 +12,7 @@
 /**
  * SessionHandlerInterface
  *
- * Provides forward compatability with PHP 5.4
+ * Provides forward compatibility with PHP 5.4
  *
  * Extensive documentation can be found at php.net, see links:
  *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Response.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
similarity index 95%
rename from core/vendor/Symfony/Component/HttpFoundation/Response.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
index 5d443ef..8f81fab 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Response.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
@@ -102,26 +102,26 @@ class Response
         415 => 'Unsupported Media Type',
         416 => 'Requested Range Not Satisfiable',
         417 => 'Expectation Failed',
-        418 => 'I\'m a teapot',
-        422 => 'Unprocessable Entity',  // RFC4918
-        423 => 'Locked',                // RFC4918
-        424 => 'Failed Dependency',     // RFC4918
+        418 => 'I\'m a teapot',                                               // RFC2324
+        422 => 'Unprocessable Entity',                                        // RFC4918
+        423 => 'Locked',                                                      // RFC4918
+        424 => 'Failed Dependency',                                           // RFC4918
         425 => 'Reserved for WebDAV advanced collections expired proposal',   // RFC2817
-        426 => 'Upgrade Required',      // RFC2817
-        428 => 'Precondition Required', // RFC-nottingham-http-new-status-04
-        429 => 'Too Many Requests',     // RFC-nottingham-http-new-status-04
-        431 => 'Request Header Fields Too Large',   // RFC-nottingham-http-new-status-04
+        426 => 'Upgrade Required',                                            // RFC2817
+        428 => 'Precondition Required',                                       // RFC6585
+        429 => 'Too Many Requests',                                           // RFC6585
+        431 => 'Request Header Fields Too Large',                             // RFC6585
         500 => 'Internal Server Error',
         501 => 'Not Implemented',
         502 => 'Bad Gateway',
         503 => 'Service Unavailable',
         504 => 'Gateway Timeout',
         505 => 'HTTP Version Not Supported',
-        506 => 'Variant Also Negotiates (Experimental)', // [RFC2295]
-        507 => 'Insufficient Storage',  // RFC4918
-        508 => 'Loop Detected',         // RFC5842
-        510 => 'Not Extended',          // RFC2774
-        511 => 'Network Authentication Required',   // RFC-nottingham-http-new-status-04
+        506 => 'Variant Also Negotiates (Experimental)',                      // RFC2295
+        507 => 'Insufficient Storage',                                        // RFC4918
+        508 => 'Loop Detected',                                               // RFC5842
+        510 => 'Not Extended',                                                // RFC2774
+        511 => 'Network Authentication Required',                             // RFC6585
     );
 
     /**
@@ -533,7 +533,7 @@ class Response
      */
     public function mustRevalidate()
     {
-        return $this->headers->hasCacheControlDirective('must-revalidate') || $this->headers->has('must-proxy-revalidate');
+        return $this->headers->hasCacheControlDirective('must-revalidate') || $this->headers->has('proxy-revalidate');
     }
 
     /**
diff --git a/core/vendor/Symfony/Component/HttpFoundation/ResponseHeaderBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/ServerBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/ServerBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
similarity index 97%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
index 7da1227..2fab8bd 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
@@ -26,7 +26,7 @@ interface FlashBagInterface extends SessionBagInterface
      * @param string $type
      * @param string $message
      */
-    public function add($type, $message);
+    function add($type, $message);
 
     /**
      * Registers a message for a given type.
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Session.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Session.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php
index 0c40c1c..b70a334 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Session.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php
@@ -209,7 +209,7 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable
     }
 
     /**
-     * {@iheritdoc}
+     * {@inheritdoc}
      */
     public function getMetadataBag()
     {
@@ -217,7 +217,7 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable
     }
 
     /**
-     * {@iheritdoc}
+     * {@inheritdoc}
      */
     public function registerBag(SessionBagInterface $bag)
     {
@@ -225,7 +225,7 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable
     }
 
     /**
-     * {@iheritdoc}
+     * {@inheritdoc}
      */
     public function getBag($name)
     {
@@ -256,7 +256,11 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable
         $return = array();
         if ($all) {
             foreach ($all as $name => $array) {
-                $return[$name] = reset($array);
+                if (is_numeric(key($array))) {
+                    $return[$name] = reset($array);
+                } else {
+                    $return[$name] = $array;
+                }
             }
         }
 
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/SessionInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/SessionInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
index 15b4c29..833dd9c 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/SessionInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
@@ -179,7 +179,7 @@ interface SessionInterface
      *
      * @param SessionBagInterface $bag
      */
-    public function registerBag(SessionBagInterface $bag);
+    function registerBag(SessionBagInterface $bag);
 
     /**
      * Gets a bag instance by name.
@@ -188,12 +188,12 @@ interface SessionInterface
      *
      * @return SessionBagInterface
      */
-    public function getBag($name);
+    function getBag($name);
 
     /**
      * Gets session meta.
      *
      * @return MetadataBag
      */
-    public function getMetadataBag();
+    function getMetadataBag();
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
new file mode 100644
index 0000000..4a5e639
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
@@ -0,0 +1,109 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
+
+/**
+ * MemcacheSessionHandler.
+ *
+ * @author Drak <drak@zikula.org>
+ */
+class MemcacheSessionHandler implements \SessionHandlerInterface
+{
+    /**
+     * @var \Memcache Memcache driver.
+     */
+    private $memcache;
+
+    /**
+     * @var integer Time to live in seconds
+     */
+    private $ttl;
+
+    /**
+     * @var string Key prefix for shared environments.
+     */
+    private $prefix;
+
+    /**
+     * Constructor.
+     *
+     * List of available options:
+     *  * prefix: The prefix to use for the memcache keys in order to avoid collision
+     *  * expiretime: The time to live in seconds
+     *
+     * @param \Memcache $memcache A \Memcache instance
+     * @param array     $options  An associative array of Memcache options
+     *
+     * @throws \InvalidArgumentException When unsupported options are passed
+     */
+    public function __construct(\Memcache $memcache, array $options = array())
+    {
+        if ($diff = array_diff(array_keys($options), array('prefix', 'expiretime'))) {
+            throw new \InvalidArgumentException(sprintf(
+                'The following options are not supported "%s"', implode(', ', $diff)
+            ));
+        }
+
+        $this->memcache = $memcache;
+        $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400;
+        $this->prefix = isset($options['prefix']) ? $options['prefix'] : 'sf2s';
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function open($savePath, $sessionName)
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function close()
+    {
+        return $this->memcache->close();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function read($sessionId)
+    {
+        return $this->memcache->get($this->prefix.$sessionId) ?: '';
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function write($sessionId, $data)
+    {
+        return $this->memcache->set($this->prefix.$sessionId, $data, 0, time() + $this->ttl);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function destroy($sessionId)
+    {
+        return $this->memcache->delete($this->prefix.$sessionId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function gc($lifetime)
+    {
+        // not required here because memcache will auto expire the records anyhow.
+        return true;
+    }
+}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
new file mode 100644
index 0000000..b666199
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
@@ -0,0 +1,116 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
+
+/**
+ * MemcachedSessionHandler.
+ *
+ * Memcached based session storage handler based on the Memcached class
+ * provided by the PHP memcached extension.
+ *
+ * @see http://php.net/memcached
+ *
+ * @author Drak <drak@zikula.org>
+ */
+class MemcachedSessionHandler implements \SessionHandlerInterface
+{
+    /**
+     * @var \Memcached Memcached driver.
+     */
+    private $memcached;
+
+    /**
+     * @var integer Time to live in seconds
+     */
+    private $ttl;
+
+
+    /**
+     * @var string Key prefix for shared environments.
+     */
+    private $prefix;
+
+    /**
+     * Constructor.
+     *
+     * List of available options:
+     *  * prefix: The prefix to use for the memcached keys in order to avoid collision
+     *  * expiretime: The time to live in seconds
+     *
+     * @param \Memcached $memcached A \Memcached instance
+     * @param array      $options   An associative array of Memcached options
+     *
+     * @throws \InvalidArgumentException When unsupported options are passed
+     */
+    public function __construct(\Memcached $memcached, array $options = array())
+    {
+        $this->memcached = $memcached;
+
+        if ($diff = array_diff(array_keys($options), array('prefix', 'expiretime'))) {
+            throw new \InvalidArgumentException(sprintf(
+                'The following options are not supported "%s"', implode(', ', $diff)
+            ));
+        }
+
+        $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400;
+        $this->prefix = isset($options['prefix']) ? $options['prefix'] : 'sf2s';
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function open($savePath, $sessionName)
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function close()
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function read($sessionId)
+    {
+        return $this->memcached->get($this->prefix.$sessionId) ?: '';
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function write($sessionId, $data)
+    {
+        return $this->memcached->set($this->prefix.$sessionId, $data, time() + $this->ttl);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function destroy($sessionId)
+    {
+        return $this->memcached->delete($this->prefix.$sessionId);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function gc($lifetime)
+    {
+        // not required here because memcached will auto expire the records anyhow.
+        return true;
+    }
+}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
new file mode 100644
index 0000000..6006773
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
@@ -0,0 +1,145 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
+
+/**
+ * MongoDB session handler
+ *
+ * @author Markus Bachmann <markus.bachmann@bachi.biz>
+ */
+class MongoDbSessionHandler implements \SessionHandlerInterface
+{
+    /**
+     * @var \Mongo
+     */
+    private $mongo;
+
+    /**
+     * @var \MongoCollection
+     */
+    private $collection;
+
+    /**
+     * @var array
+     */
+    private $options;
+
+    /**
+     * Constructor.
+     *
+     * @param \Mongo $mongo   A "Mongo" instance
+     * @param array  $options An associative array of field options
+     *
+     * @throws \InvalidArgumentException When "database" or "collection" not provided
+     */
+    public function __construct(\Mongo $mongo, array $options)
+    {
+        if (!isset($options['database']) || !isset($options['collection'])) {
+            throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler');
+        }
+
+        $this->mongo = $mongo;
+
+        $this->options = array_merge(array(
+            'id_field'   => 'sess_id',
+            'data_field' => 'sess_data',
+            'time_field' => 'sess_time',
+        ), $options);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function open($savePath, $sessionName)
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function close()
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function destroy($sessionId)
+    {
+        $this->getCollection()->remove(
+            array($this->options['id_field'] => $sessionId),
+            array('justOne' => true)
+        );
+
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function gc($lifetime)
+    {
+        $time = new \MongoTimestamp(time() - $lifetime);
+
+        $this->getCollection()->remove(array(
+            $this->options['time_field'] => array('$lt' => $time),
+        ));
+    }
+
+    /**
+     * {@inheritDoc]
+     */
+    public function write($sessionId, $data)
+    {
+        $data = array(
+            $this->options['id_field']   => $sessionId,
+            $this->options['data_field'] => new \MongoBinData($data),
+            $this->options['time_field'] => new \MongoTimestamp()
+        );
+
+        $this->getCollection()->update(
+            array($this->options['id_field'] => $sessionId),
+            array('$set' => $data),
+            array('upsert' => true)
+        );
+
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function read($sessionId)
+    {
+        $dbData = $this->getCollection()->findOne(array(
+            $this->options['id_field'] => $sessionId,
+        ));
+
+        return null === $dbData ? '' : $dbData[$this->options['data_field']]->bin;
+    }
+
+    /**
+     * Return a "MongoCollection" instance
+     *
+     * @return \MongoCollection
+     */
+    private function getCollection()
+    {
+        if (null === $this->collection) {
+            $this->collection = $this->mongo->selectDB($this->options['database'])->selectCollection($this->options['collection']);
+        }
+
+        return $this->collection;
+    }
+}
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcacheSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcacheSessionHandler.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcacheSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcacheSessionHandler.php
index 4fea88b..0b9c623 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcacheSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcacheSessionHandler.php
@@ -14,7 +14,7 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 /**
  * NativeMemcacheSessionHandler.
  *
- * Driver for the memcache session save hadlers provided by the memcache PHP extension.
+ * Driver for the memcache session save handler provided by the memcache PHP extension.
  *
  * @see http://php.net/memcache
  *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcachedSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcachedSessionHandler.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcachedSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcachedSessionHandler.php
index 8f64660..ee9d754 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcachedSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeMemcachedSessionHandler.php
@@ -14,7 +14,7 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 /**
  * NativeMemcachedSessionHandler.
  *
- * Driver for the memcached session save hadlers provided by the memcached PHP extension.
+ * Driver for the memcached session save handler provided by the memcached PHP extension.
  *
  * @see http://php.net/memcached.sessions
  *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeRedisSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeRedisSessionHandler.php
similarity index 94%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeRedisSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeRedisSessionHandler.php
index d155052..e60c7f6 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeRedisSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeRedisSessionHandler.php
@@ -14,7 +14,7 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 /**
  * NativeRedisSessionStorage.
  *
- * Driver for the redis session save hadlers provided by the redis PHP extension.
+ * Driver for the redis session save handler provided by the redis PHP extension.
  *
  * @see https://github.com/nicolasff/phpredis
  *
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSqliteSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSqliteSessionHandler.php
similarity index 95%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSqliteSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSqliteSessionHandler.php
index 098cc8a..ac034c2 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSqliteSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSqliteSessionHandler.php
@@ -14,7 +14,7 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 /**
  * NativeSqliteSessionHandler.
  *
- * Driver for the sqlite session save hadlers provided by the SQLite PHP extension.
+ * Driver for the sqlite session save handler provided by the SQLite PHP extension.
  *
  * @author Drak <drak@zikula.org>
  */
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NullSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NullSessionHandler.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/NullSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NullSessionHandler.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
similarity index 65%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
index 28dccba..9c4c5aa 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
@@ -20,30 +20,30 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 class PdoSessionHandler implements \SessionHandlerInterface
 {
     /**
-     * PDO instance.
-     *
-     * @var \PDO
+     * @var \PDO PDO instance.
      */
     private $pdo;
 
     /**
-     * Database options.
-     *
-     *
-     * @var array
+     * @var array Database options.
      */
     private $dbOptions;
 
     /**
      * Constructor.
      *
+     * List of available options:
+     *  * db_table: The name of the table [required]
+     *  * db_id_col: The column where to store the session id [default: sess_id]
+     *  * db_data_col: The column where to store the session data [default: sess_data]
+     *  * db_time_col: The column where to store the timestamp [default: sess_time]
+     *
      * @param \PDO  $pdo       A \PDO instance
      * @param array $dbOptions An associative array of DB options
-     * @param array $options   Session configuration options
      *
      * @throws \InvalidArgumentException When "db_table" option is not provided
      */
-    public function __construct(\PDO $pdo, array $dbOptions = array(), array $options = array())
+    public function __construct(\PDO $pdo, array $dbOptions = array())
     {
         if (!array_key_exists('db_table', $dbOptions)) {
             throw new \InvalidArgumentException('You must provide the "db_table" option for a PdoSessionStorage.');
@@ -58,7 +58,7 @@ class PdoSessionHandler implements \SessionHandlerInterface
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function open($path, $name)
     {
@@ -66,7 +66,7 @@ class PdoSessionHandler implements \SessionHandlerInterface
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function close()
     {
@@ -74,12 +74,12 @@ class PdoSessionHandler implements \SessionHandlerInterface
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function destroy($id)
     {
         // get table/column
-        $dbTable  = $this->dbOptions['db_table'];
+        $dbTable = $this->dbOptions['db_table'];
         $dbIdCol = $this->dbOptions['db_id_col'];
 
         // delete the record associated with this id
@@ -97,20 +97,20 @@ class PdoSessionHandler implements \SessionHandlerInterface
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function gc($lifetime)
     {
         // get table/column
-        $dbTable    = $this->dbOptions['db_table'];
+        $dbTable   = $this->dbOptions['db_table'];
         $dbTimeCol = $this->dbOptions['db_time_col'];
 
         // delete the session records that have expired
-        $sql = "DELETE FROM $dbTable WHERE $dbTimeCol < (:time - $lifetime)";
+        $sql = "DELETE FROM $dbTable WHERE $dbTimeCol < :time";
 
         try {
             $stmt = $this->pdo->prepare($sql);
-            $stmt->bindValue(':time', time(), \PDO::PARAM_INT);
+            $stmt->bindValue(':time', time() - $lifetime, \PDO::PARAM_INT);
             $stmt->execute();
         } catch (\PDOException $e) {
             throw new \RuntimeException(sprintf('PDOException was thrown when trying to manipulate session data: %s', $e->getMessage()), 0, $e);
@@ -120,12 +120,12 @@ class PdoSessionHandler implements \SessionHandlerInterface
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function read($id)
     {
         // get table/columns
-        $dbTable    = $this->dbOptions['db_table'];
+        $dbTable   = $this->dbOptions['db_table'];
         $dbDataCol = $this->dbOptions['db_data_col'];
         $dbIdCol   = $this->dbOptions['db_id_col'];
 
@@ -154,7 +154,7 @@ class PdoSessionHandler implements \SessionHandlerInterface
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function write($id, $data)
     {
@@ -164,27 +164,37 @@ class PdoSessionHandler implements \SessionHandlerInterface
         $dbIdCol   = $this->dbOptions['db_id_col'];
         $dbTimeCol = $this->dbOptions['db_time_col'];
 
-        $sql = ('mysql' === $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME))
-            ? "INSERT INTO $dbTable ($dbIdCol, $dbDataCol, $dbTimeCol) VALUES (:id, :data, :time) "
-              ."ON DUPLICATE KEY UPDATE $dbDataCol = VALUES($dbDataCol), $dbTimeCol = CASE WHEN $dbTimeCol = :time THEN (VALUES($dbTimeCol) + 1) ELSE VALUES($dbTimeCol) END"
-            : "UPDATE $dbTable SET $dbDataCol = :data, $dbTimeCol = :time WHERE $dbIdCol = :id";
+        //session data can contain non binary safe characters so we need to encode it
+        $encoded = base64_encode($data);
 
         try {
-            //session data can contain non binary safe characters so we need to encode it
-            $encoded = base64_encode($data);
-            $stmt = $this->pdo->prepare($sql);
-            $stmt->bindParam(':id', $id, \PDO::PARAM_STR);
-            $stmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
-            $stmt->bindValue(':time', time(), \PDO::PARAM_INT);
-            $stmt->execute();
-
-            if (!$stmt->rowCount()) {
-                // No session exists in the database to update. This happens when we have called
-                // session_regenerate_id()
-                $this->createNewSession($id, $data);
+            if ('mysql' === $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME)) {
+                // MySQL would report $stmt->rowCount() = 0 on UPDATE when the data is left unchanged
+                // it could result in calling createNewSession() whereas the session already exists in
+                // the DB which would fail as the id is unique
+                $stmt = $this->pdo->prepare(
+                    "INSERT INTO $dbTable ($dbIdCol, $dbDataCol, $dbTimeCol) VALUES (:id, :data, :time) " .
+                    "ON DUPLICATE KEY UPDATE $dbDataCol = VALUES($dbDataCol), $dbTimeCol = VALUES($dbTimeCol)"
+                );
+                $stmt->bindParam(':id', $id, \PDO::PARAM_STR);
+                $stmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
+                $stmt->bindValue(':time', time(), \PDO::PARAM_INT);
+                $stmt->execute();
+            } else {
+                $stmt = $this->pdo->prepare("UPDATE $dbTable SET $dbDataCol = :data, $dbTimeCol = :time WHERE $dbIdCol = :id");
+                $stmt->bindParam(':id', $id, \PDO::PARAM_STR);
+                $stmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
+                $stmt->bindValue(':time', time(), \PDO::PARAM_INT);
+                $stmt->execute();
+
+                if (!$stmt->rowCount()) {
+                    // No session exists in the database to update. This happens when we have called
+                    // session_regenerate_id()
+                    $this->createNewSession($id, $data);
+                }
             }
         } catch (\PDOException $e) {
-            throw new \RuntimeException(sprintf('PDOException was thrown when trying to write the session data: %s', $e->getMessage()), 0, $e);
+                throw new \RuntimeException(sprintf('PDOException was thrown when trying to write the session data: %s', $e->getMessage()), 0, $e);
         }
 
         return true;
@@ -201,7 +211,7 @@ class PdoSessionHandler implements \SessionHandlerInterface
     private function createNewSession($id, $data = '')
     {
         // get table/column
-        $dbTable    = $this->dbOptions['db_table'];
+        $dbTable   = $this->dbOptions['db_table'];
         $dbDataCol = $this->dbOptions['db_data_col'];
         $dbIdCol   = $this->dbOptions['db_id_col'];
         $dbTimeCol = $this->dbOptions['db_time_col'];
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
similarity index 99%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
index 5500a03..4572552 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
@@ -61,7 +61,7 @@ class MockArraySessionStorage implements SessionStorageInterface
     /**
      * Constructor.
      *
-     * @param string  $name    Session name
+     * @param string      $name    Session name
      * @param MetadataBag $metaBag MetadataBag instance.
      */
     public function __construct($name = 'MOCKSESSID', MetadataBag $metaBag = null)
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
index 215ed26..7a9d775 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
@@ -89,8 +89,8 @@ class NativeSessionStorage implements SessionStorageInterface
      * upload_progress.min-freq, "1"
      * url_rewriter.tags, "a=href,area=href,frame=src,form=,fieldset="
      *
-     * @param array   $options Session configuration options.
-     * @param object  $handler SessionHandlerInterface.
+     * @param array       $options Session configuration options.
+     * @param object      $handler SessionHandlerInterface.
      * @param MetadataBag $handler MetadataBag.
      */
     public function __construct(array $options = array(), $handler = null, MetadataBag $metaBag = null)
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Proxy/AbstractProxy.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Proxy/AbstractProxy.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Proxy/AbstractProxy.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Proxy/AbstractProxy.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Proxy/NativeProxy.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Proxy/NativeProxy.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Proxy/NativeProxy.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Proxy/NativeProxy.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
index 20c533c..c07ed7f 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
@@ -82,7 +82,7 @@ interface SessionStorageInterface
      * Note regenerate+destroy should not clear the session data in memory
      * only delete the session data from persistent storage.
      *
-     * @param Boolean $destroy Destroy session when regenerating?
+     * @param Boolean $destroy  Destroy session when regenerating?
      * @param integer $lifetime Sets the cookie lifetime for the session cookie. A null value
      *                          will leave the system settings unchanged, 0 sets the cookie
      *                          to expire with browser session. Time is in seconds, and is
diff --git a/core/vendor/Symfony/Component/HttpFoundation/StreamedResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/StreamedResponse.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/StreamedResponse.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/StreamedResponse.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/ApacheRequestTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ApacheRequestTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/ApacheRequestTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ApacheRequestTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/CookieTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/CookieTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/FileTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/FileTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/FileTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/FileTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/.unknownextension b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/.unknownextension
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/.unknownextension
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/.unknownextension
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/directory/.empty b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/directory/.empty
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/directory/.empty
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/directory/.empty
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test.gif b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test.gif
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test.gif
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/Fixtures/test.gif
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
index 2990c21..7bf10a2 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
@@ -84,7 +84,7 @@ class MimeTypeTest extends \PHPUnit_Framework_TestCase
 
         $path = __DIR__.'/../Fixtures/to_delete';
         touch($path);
-        chmod($path, 0333);
+        @chmod($path, 0333);
 
         if (get_current_user() != 'root' && substr(sprintf('%o', fileperms($path)), -4) == '0333') {
             $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException');
@@ -98,7 +98,7 @@ class MimeTypeTest extends \PHPUnit_Framework_TestCase
     {
         $path = __DIR__.'/../Fixtures/to_delete';
         if (file_exists($path)) {
-            chmod($path, 0666);
+            @chmod($path, 0666);
             @unlink($path);
         }
     }
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/FileBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/FileBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/FileBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/FileBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestMatcherTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
similarity index 99%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/RequestTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
index 84f19a2..e6f5aff 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Tests/RequestTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
@@ -1053,7 +1053,7 @@ class RequestTest extends \PHPUnit_Framework_TestCase
             array('fo%2Bo/bar', 'fo+o', 'fo%2Bo'),
         );
     }
-    
+
     private function stopTrustingProxyData()
     {
         $class = new \ReflectionClass('Symfony\\Component\\HttpFoundation\\Request');
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/ResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
similarity index 92%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
index bd45b2f..2f2b26f 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
@@ -183,6 +183,21 @@ class SessionTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(array('notice' => 'foo'), $this->session->getFlashes());
     }
 
+    public function testGetFlashesWithArray()
+    {
+        $array = array('notice' => 'hello', 'error' => 'none');
+        $this->assertEquals(array(), $this->session->getFlashes());
+        $this->session->setFlash('foo', $array);
+        $this->assertEquals(array('foo' => $array), $this->session->getFlashes());
+        $this->assertEquals(array(), $this->session->getFlashes());
+
+        $array = array('hello', 'foo');
+        $this->assertEquals(array(), $this->session->getFlashes());
+        $this->session->setFlash('foo', $array);
+        $this->assertEquals(array('foo' => 'hello'), $this->session->getFlashes());
+        $this->assertEquals(array(), $this->session->getFlashes());
+    }
+
     public function testGetSetFlash()
     {
         $this->assertNull($this->session->getFlash('notice'));
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
new file mode 100644
index 0000000..da0440d
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
@@ -0,0 +1,124 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
+
+use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler;
+
+class MemcacheSessionHandlerTest extends \PHPUnit_Framework_TestCase
+{
+    const PREFIX = 'prefix_';
+    const TTL = 1000;
+    /**
+     * @var MemcacheSessionHandler
+     */
+    protected $storage;
+
+    protected $memcache;
+
+    protected function setUp()
+    {
+        if (!class_exists('Memcache')) {
+            $this->markTestSkipped('Skipped tests Memcache class is not present');
+        }
+
+        $this->memcache = $this->getMock('Memcache');
+        $this->storage = new MemcacheSessionHandler(
+            $this->memcache,
+            array('prefix' => self::PREFIX, 'expiretime' => self::TTL)
+        );
+    }
+
+    protected function tearDown()
+    {
+        $this->memcache = null;
+        $this->storage = null;
+    }
+
+    public function testOpenSession()
+    {
+        $this->assertTrue($this->storage->open('', ''));
+    }
+
+    public function testCloseSession()
+    {
+        $this->memcache
+            ->expects($this->once())
+            ->method('close')
+            ->will($this->returnValue(true))
+        ;
+
+        $this->assertTrue($this->storage->close());
+    }
+
+    public function testReadSession()
+    {
+        $this->memcache
+            ->expects($this->once())
+            ->method('get')
+            ->with(self::PREFIX.'id')
+        ;
+
+        $this->assertEquals('', $this->storage->read('id'));
+    }
+
+    public function testWriteSession()
+    {
+        $this->memcache
+            ->expects($this->once())
+            ->method('set')
+            ->with(self::PREFIX.'id', 'data', 0, $this->equalTo(time() + self::TTL, 2))
+            ->will($this->returnValue(true))
+        ;
+
+        $this->assertTrue($this->storage->write('id', 'data'));
+    }
+
+    public function testDestroySession()
+    {
+        $this->memcache
+            ->expects($this->once())
+            ->method('delete')
+            ->with(self::PREFIX.'id')
+            ->will($this->returnValue(true))
+        ;
+
+        $this->assertTrue($this->storage->destroy('id'));
+    }
+
+    public function testGcSession()
+    {
+        $this->assertTrue($this->storage->gc(123));
+    }
+
+    /**
+     * @dataProvider getOptionFixtures
+     */
+    public function testSupportedOptions($options, $supported)
+    {
+        try {
+            new MemcacheSessionHandler($this->memcache, $options);
+            $this->assertTrue($supported);
+        } catch (\InvalidArgumentException $e) {
+            $this->assertFalse($supported);
+        }
+    }
+
+    public function getOptionFixtures()
+    {
+        return array(
+            array(array('prefix' => 'session'), true),
+            array(array('expiretime' => 100), true),
+            array(array('prefix' => 'session', 'expiretime' => 200), true),
+            array(array('expiretime' => 100, 'foo' => 'bar'), false),
+        );
+    }
+}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
new file mode 100644
index 0000000..6f158cd
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
@@ -0,0 +1,119 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
+
+use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcachedSessionHandler;
+
+class MemcacheddSessionHandlerTest extends \PHPUnit_Framework_TestCase
+{
+    const PREFIX = 'prefix_';
+    const TTL = 1000;
+
+    /**
+     * @var MemcachedSessionHandler
+     */
+    protected $storage;
+
+    protected $memcached;
+
+    protected function setUp()
+    {
+        if (!class_exists('Memcached')) {
+            $this->markTestSkipped('Skipped tests Memcache class is not present');
+        }
+
+        $this->memcached = $this->getMock('Memcached');
+        $this->storage = new MemcachedSessionHandler(
+            $this->memcached,
+            array('prefix' => self::PREFIX, 'expiretime' => self::TTL)
+        );
+    }
+
+    protected function tearDown()
+    {
+        $this->memcached = null;
+        $this->storage = null;
+    }
+
+    public function testOpenSession()
+    {
+        $this->assertTrue($this->storage->open('', ''));
+    }
+
+    public function testCloseSession()
+    {
+        $this->assertTrue($this->storage->close());
+    }
+
+    public function testReadSession()
+    {
+        $this->memcached
+            ->expects($this->once())
+            ->method('get')
+            ->with(self::PREFIX.'id')
+        ;
+
+        $this->assertEquals('', $this->storage->read('id'));
+    }
+
+    public function testWriteSession()
+    {
+        $this->memcached
+            ->expects($this->once())
+            ->method('set')
+            ->with(self::PREFIX.'id', 'data', $this->equalTo(time() + self::TTL, 2))
+            ->will($this->returnValue(true))
+        ;
+
+        $this->assertTrue($this->storage->write('id', 'data'));
+    }
+
+    public function testDestroySession()
+    {
+        $this->memcached
+            ->expects($this->once())
+            ->method('delete')
+            ->with(self::PREFIX.'id')
+            ->will($this->returnValue(true))
+        ;
+
+        $this->assertTrue($this->storage->destroy('id'));
+    }
+
+    public function testGcSession()
+    {
+        $this->assertTrue($this->storage->gc(123));
+    }
+
+    /**
+     * @dataProvider getOptionFixtures
+     */
+    public function testSupportedOptions($options, $supported)
+    {
+        try {
+            new MemcachedSessionHandler($this->memcached, $options);
+            $this->assertTrue($supported);
+        } catch (\InvalidArgumentException $e) {
+            $this->assertFalse($supported);
+        }
+    }
+
+    public function getOptionFixtures()
+    {
+        return array(
+            array(array('prefix' => 'session'), true),
+            array(array('expiretime' => 100), true),
+            array(array('prefix' => 'session', 'expiretime' => 200), true),
+            array(array('expiretime' => 100, 'foo' => 'bar'), false),
+        );
+    }
+}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
new file mode 100644
index 0000000..c9eb0b3
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
@@ -0,0 +1,99 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
+
+use Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler;
+
+/**
+ * @author Markus Bachmann <markus.bachmann@bachi.biz>
+ */
+class MongoDbSessionHandlerTest extends \PHPUnit_Framework_TestCase
+{
+    private static $mongo;
+
+    public static function setUpBeforeClass()
+    {
+        if (class_exists('\Mongo')) {
+            try {
+                self::$mongo = new \Mongo();
+            } catch (\Exception $e) {
+            }
+        }
+    }
+
+    protected function setUp()
+    {
+        if (null === self::$mongo) {
+            $this->markTestSkipped('MongoDbSessionHandler requires the php "mongo" extension and a mongodb server on localhost');
+        }
+
+        $this->options = array('database' => 'sf2-test', 'collection' => 'session-test');
+        $this->options = array('database' => 'sf2-test', 'collection' => 'session-test');
+
+        $this->storage = new MongoDbSessionHandler(self::$mongo, $this->options);
+    }
+
+    protected function tearDown()
+    {
+        if (null !== self::$mongo) {
+            self::$mongo->dropDB($this->options['database']);
+        }
+    }
+
+    public function testOpenMethodAlwaysReturnTrue()
+    {
+        $this->assertTrue($this->storage->open('test', 'test'), 'The "open" method should always return true');
+    }
+
+    public function testCloseMethodAlwaysReturnTrue()
+    {
+        $this->assertTrue($this->storage->close(), 'The "close" method should always return true');
+    }
+
+    public function testWrite()
+    {
+        $this->assertTrue($this->storage->write('foo', 'bar'));
+        $this->assertEquals('bar', $this->storage->read('foo'));
+    }
+
+    public function testReplaceSessionData()
+    {
+        $this->storage->write('foo', 'bar');
+        $this->storage->write('foo', 'foobar');
+
+        $coll = self::$mongo->selectDB($this->options['database'])->selectCollection($this->options['collection']);
+
+        $this->assertEquals('foobar', $this->storage->read('foo'));
+        $this->assertEquals(1, $coll->find(array('sess_id' => 'foo'))->count());
+    }
+
+    public function testDestroy()
+    {
+        $this->storage->write('foo', 'bar');
+        $this->storage->destroy('foo');
+
+        $this->assertEquals('', $this->storage->read('foo'));
+    }
+
+    public function testGc()
+    {
+        $this->storage->write('foo', 'bar');
+        $this->storage->write('bar', 'foo');
+
+        $coll = self::$mongo->selectDB($this->options['database'])->selectCollection($this->options['collection']);
+
+        $this->assertEquals(2, $coll->count());
+        $this->storage->gc(-1);
+        $this->assertEquals(0, $coll->count());
+
+    }
+}
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcacheSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcacheSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcacheSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcacheSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcachedSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcachedSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcachedSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeMemcachedSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeRedisSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeRedisSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeRedisSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeRedisSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSqliteSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSqliteSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSqliteSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSqliteSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/NativeProxyTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/NativeProxyTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/NativeProxyTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/NativeProxyTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/Tests/bootstrap.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/bootstrap.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpFoundation/Tests/bootstrap.php
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/bootstrap.php
diff --git a/core/vendor/Symfony/Component/HttpFoundation/composer.json b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json
similarity index 97%
rename from core/vendor/Symfony/Component/HttpFoundation/composer.json
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json
index d0f1015..4e4f907 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/composer.json
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json
@@ -16,7 +16,7 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
     },
     "autoload": {
         "psr-0": {
diff --git a/core/vendor/Symfony/Component/HttpFoundation/phpunit.xml.dist b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist
similarity index 94%
rename from core/vendor/Symfony/Component/HttpFoundation/phpunit.xml.dist
rename to core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist
index 95e0f03..2a760f2 100644
--- a/core/vendor/Symfony/Component/HttpFoundation/phpunit.xml.dist
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist
@@ -23,6 +23,7 @@
             <exclude>
                 <directory>./Resources</directory>
                 <directory>./Tests</directory>
+                <directory>./vendor</directory>
             </exclude>
         </whitelist>
     </filter>
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/.gitignore b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/.gitignore
new file mode 100644
index 0000000..d1502b0
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/.gitignore
@@ -0,0 +1,2 @@
+vendor/
+composer.lock
diff --git a/core/vendor/Symfony/Component/HttpKernel/Bundle/Bundle.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/Bundle.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Bundle/Bundle.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/Bundle.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Bundle/BundleInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/BundleInterface.php
similarity index 90%
rename from core/vendor/Symfony/Component/HttpKernel/Bundle/BundleInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/BundleInterface.php
index 99d591f..980b890 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Bundle/BundleInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/BundleInterface.php
@@ -11,7 +11,9 @@
 
 namespace Symfony\Component\HttpKernel\Bundle;
 
+use Symfony\Component\DependencyInjection\ContainerAwareInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
 
 /**
  * BundleInterface.
@@ -20,7 +22,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder;
  *
  * @api
  */
-interface BundleInterface
+interface BundleInterface extends ContainerAwareInterface
 {
     /**
      * Boots the Bundle.
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
new file mode 100644
index 0000000..d061c7d
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
@@ -0,0 +1,19 @@
+CHANGELOG
+=========
+
+2.1.0
+-----
+
+ * added the HTTP method to the profiler storage
+ * updated all listeners to implement EventSubscriberInterface
+ * added TimeDataCollector
+ * added ContainerAwareTraceableEventDispatcher
+ * moved TraceableEventDispatcherInterface to the EventDispatcher component
+ * added RouterListener, LocaleListener, and StreamedResponseListener
+ * added CacheClearerInterface (and ChainCacheClearer)
+ * added a kernel.terminate event (via TerminableInterface and PostResponseEvent)
+ * added a Stopwatch class
+ * added WarmableInterface
+ * improved extensibility between bundles
+ * added profiler storages for Memcache(d), File-based, MongoDB, Redis
+ * moved Filesystem class to its own component
diff --git a/core/vendor/Symfony/Component/HttpKernel/CacheClearer/CacheClearerInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/CacheClearerInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/CacheClearer/CacheClearerInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/CacheClearerInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php
similarity index 94%
rename from core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php
index 2406c65..948b3ff 100644
--- a/core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php
@@ -22,7 +22,7 @@ abstract class CacheWarmer implements CacheWarmerInterface
     {
         $tmpFile = tempnam(dirname($file), basename($file));
         if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) {
-            chmod($file, 0666 & ~umask());
+            @chmod($file, 0666 & ~umask());
 
             return;
         }
diff --git a/core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/CacheWarmer/WarmableInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/WarmableInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/CacheWarmer/WarmableInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/WarmableInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Client.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
similarity index 99%
rename from core/vendor/Symfony/Component/HttpKernel/Client.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
index ff93bf7..f5dcd9a 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Client.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
@@ -52,7 +52,7 @@ class Client extends BaseClient
     /**
      * Makes a request.
      *
-     * @param Request  $request A Request instance
+     * @param Request $request A Request instance
      *
      * @return Response A Response instance
      */
diff --git a/core/vendor/Symfony/Component/HttpKernel/Config/FileLocator.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Config/FileLocator.php
similarity index 93%
rename from core/vendor/Symfony/Component/HttpKernel/Config/FileLocator.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Config/FileLocator.php
index 6cc615c..d241b9d 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Config/FileLocator.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Config/FileLocator.php
@@ -29,7 +29,7 @@ class FileLocator extends BaseFileLocator
      *
      * @param KernelInterface $kernel A KernelInterface instance
      * @param string          $path   The path the global resource directory
-     * @param string|array    $paths A path or an array of paths where to look for resources
+     * @param string|array    $paths  A path or an array of paths where to look for resources
      */
     public function __construct(KernelInterface $kernel, $path = null, array $paths = array())
     {
diff --git a/core/vendor/Symfony/Component/HttpKernel/Controller/ControllerResolver.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/DataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
similarity index 93%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
index f1002fb..7da36b6 100644
--- a/core/vendor/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\HttpKernel\DataCollector;
 
-use Symfony\Component\HttpKernel\Profiler\Profiler;
 
 /**
  * DataCollector.
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/DataCollectorInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollectorInterface.php
similarity index 95%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/DataCollectorInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollectorInterface.php
index 5e0ff7a..7cfbbd1 100644
--- a/core/vendor/Symfony/Component/HttpKernel/DataCollector/DataCollectorInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollectorInterface.php
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\HttpKernel\DataCollector;
 
-use Symfony\Component\HttpKernel\Profiler\Profiler;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Debug/ContainerAwareTraceableEventDispatcher.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ContainerAwareTraceableEventDispatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Debug/ContainerAwareTraceableEventDispatcher.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ContainerAwareTraceableEventDispatcher.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Debug/ErrorHandler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ErrorHandler.php
similarity index 95%
rename from core/vendor/Symfony/Component/HttpKernel/Debug/ErrorHandler.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ErrorHandler.php
index 942e82b..a2466d6 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Debug/ErrorHandler.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ErrorHandler.php
@@ -26,6 +26,8 @@ class ErrorHandler
         E_USER_NOTICE       => 'User Notice',
         E_STRICT            => 'Runtime Notice',
         E_RECOVERABLE_ERROR => 'Catchable Fatal Error',
+        E_DEPRECATED        => 'Deprecated',
+        E_USER_DEPRECATED   => 'User Deprecated',
     );
 
     private $level;
diff --git a/core/vendor/Symfony/Component/HttpKernel/Debug/ExceptionHandler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ExceptionHandler.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Debug/ExceptionHandler.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/ExceptionHandler.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Debug/Stopwatch.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/Stopwatch.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Debug/Stopwatch.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/Stopwatch.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Debug/StopwatchEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/StopwatchEvent.php
similarity index 97%
rename from core/vendor/Symfony/Component/HttpKernel/Debug/StopwatchEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/StopwatchEvent.php
index 36e6541..200c465 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Debug/StopwatchEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/StopwatchEvent.php
@@ -26,8 +26,8 @@ class StopwatchEvent
     /**
      * Constructor.
      *
-     * @param float   $origin   The origin time in milliseconds
-     * @param string  $category The event category
+     * @param float  $origin   The origin time in milliseconds
+     * @param string $category The event category
      *
      * @throws \InvalidArgumentException When the raw time is not valid
      */
diff --git a/core/vendor/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DependencyInjection/ConfigurableExtension.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ConfigurableExtension.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpKernel/DependencyInjection/ConfigurableExtension.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ConfigurableExtension.php
index 4f6f6a3..8388ccf 100755
--- a/core/vendor/Symfony/Component/HttpKernel/DependencyInjection/ConfigurableExtension.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ConfigurableExtension.php
@@ -38,7 +38,7 @@ abstract class ConfigurableExtension extends Extension
     /**
      * Configures the passed container according to the merged configuration.
      *
-     * @param array $mergedConfig
+     * @param array            $mergedConfig
      * @param ContainerBuilder $container
      */
     abstract protected function loadInternal(array $mergedConfig, ContainerBuilder $container);
diff --git a/core/vendor/Symfony/Component/HttpKernel/DependencyInjection/Extension.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/Extension.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DependencyInjection/Extension.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/Extension.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/GetResponseEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
index f7cf28d..fdf2f9c 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
@@ -61,7 +61,7 @@ class GetResponseForExceptionEvent extends GetResponseEvent
      *
      * This exception will be thrown if no response is set in the event.
      *
-     * @param \Exception $exception  The thrown exception
+     * @param \Exception $exception The thrown exception
      *
      * @api
      */
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/KernelEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Event/KernelEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Event/PostResponseEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/PostResponseEvent.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Event/PostResponseEvent.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/PostResponseEvent.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/EsiListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/EsiListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/EsiListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/EsiListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/LocaleListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/ResponseListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ResponseListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/ResponseListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ResponseListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/RouterListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/RouterListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Exception/FlattenException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FlattenException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Exception/FlattenException.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FlattenException.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Exception/HttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/HttpException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Exception/HttpException.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/HttpException.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Exception/HttpExceptionInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/HttpExceptionInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Exception/HttpExceptionInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/HttpExceptionInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php
similarity index 73%
rename from core/vendor/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php
index 7ae7b7a..cdfcc8a 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php
@@ -21,10 +21,10 @@ class MethodNotAllowedHttpException extends HttpException
     /**
      * Constructor.
      *
-     * @param array     $allow         An array of allowed methods
-     * @param string    $message       The internal exception message
-     * @param Exception $previous      The previous exception
-     * @param integer   $code          The internal exception code
+     * @param array     $allow    An array of allowed methods
+     * @param string    $message  The internal exception message
+     * @param Exception $previous The previous exception
+     * @param integer   $code     The internal exception code
      */
     public function __construct(array $allow, $message = null, \Exception $previous = null, $code = 0)
     {
diff --git a/core/vendor/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpCache/Esi.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/HttpCache/Esi.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategy.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategy.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategy.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategy.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategyInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategyInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategyInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/EsiResponseCacheStrategyInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpCache/HttpCache.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
similarity index 99%
rename from core/vendor/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
index ce3e005..49642d4 100644
--- a/core/vendor/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
@@ -647,7 +647,7 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
      * Records that an event took place.
      *
      * @param Request $request A Request instance
-     * @param string  $event The event name
+     * @param string  $event   The event name
      */
     private function record(Request $request, $event)
     {
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpCache/Store.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpKernel/HttpCache/Store.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
index fe19f3a..b60c647 100644
--- a/core/vendor/Symfony/Component/HttpKernel/HttpCache/Store.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
@@ -167,7 +167,7 @@ class Store implements StoreInterface
         $entries = array();
         $vary = $response->headers->get('vary');
         foreach ($this->getMetadata($key) as $entry) {
-            if (!isset($entry[1]['vary'])) {
+            if (!isset($entry[1]['vary'][0])) {
                 $entry[1]['vary'] = array('');
             }
 
@@ -293,7 +293,7 @@ class Store implements StoreInterface
     /**
      * Loads data for the given key.
      *
-     * @param string $key  The store key
+     * @param string $key The store key
      *
      * @return string The data associated with the key
      */
@@ -332,7 +332,7 @@ class Store implements StoreInterface
             return false;
         }
 
-        chmod($path, 0666 & ~umask());
+        @chmod($path, 0666 & ~umask());
     }
 
     public function getPath($key)
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpCache/StoreInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/StoreInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/HttpCache/StoreInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/StoreInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
similarity index 95%
rename from core/vendor/Symfony/Component/HttpKernel/HttpKernel.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
index 9a465d1..eea71e8 100644
--- a/core/vendor/Symfony/Component/HttpKernel/HttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
@@ -55,10 +55,10 @@ class HttpKernel implements HttpKernelInterface, TerminableInterface
      * When $catch is true, the implementation must catch all exceptions
      * and do its best to convert them to a Response instance.
      *
-     * @param  Request $request A Request instance
-     * @param  integer $type    The type of the request
+     * @param Request $request A Request instance
+     * @param integer $type    The type of the request
      *                          (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)
-     * @param  Boolean $catch   Whether to catch exceptions or not
+     * @param Boolean $catch Whether to catch exceptions or not
      *
      * @return Response A Response instance
      *
@@ -173,9 +173,9 @@ class HttpKernel implements HttpKernelInterface, TerminableInterface
     /**
      * Handles and exception by trying to convert it to a Response.
      *
-     * @param  \Exception $e       An \Exception instance
-     * @param  Request    $request A Request instance
-     * @param  integer    $type    The type of the request
+     * @param \Exception $e       An \Exception instance
+     * @param Request    $request A Request instance
+     * @param integer    $type    The type of the request
      *
      * @return Response A Response instance
      */
diff --git a/core/vendor/Symfony/Component/HttpKernel/HttpKernelInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernelInterface.php
similarity index 87%
rename from core/vendor/Symfony/Component/HttpKernel/HttpKernelInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernelInterface.php
index a2a0f1c..efcf39d 100644
--- a/core/vendor/Symfony/Component/HttpKernel/HttpKernelInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernelInterface.php
@@ -32,10 +32,10 @@ interface HttpKernelInterface
      * When $catch is true, the implementation must catch all exceptions
      * and do its best to convert them to a Response instance.
      *
-     * @param  Request $request A Request instance
-     * @param  integer $type    The type of the request
+     * @param Request $request A Request instance
+     * @param integer $type    The type of the request
      *                          (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)
-     * @param  Boolean $catch   Whether to catch exceptions or not
+     * @param Boolean $catch Whether to catch exceptions or not
      *
      * @return Response A Response instance
      *
diff --git a/core/vendor/Symfony/Component/HttpKernel/Kernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
similarity index 98%
rename from core/vendor/Symfony/Component/HttpKernel/Kernel.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
index 7fdb546..406e066 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Kernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
@@ -58,7 +58,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     protected $classes;
     protected $errorReportingLevel;
 
-    const VERSION = '2.1.0-DEV';
+    const VERSION         = '2.1.0-DEV';
+    const VERSION_ID      = '20100';
+    const MAJOR_VERSION   = '2';
+    const MINOR_VERSION   = '1';
+    const RELEASE_VERSION = '0';
+    const EXTRA_VERSION   = 'DEV';
 
     /**
      * Constructor.
@@ -408,8 +413,8 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     /**
      * Loads the PHP class cache.
      *
-     * @param string  $name      The cache name prefix
-     * @param string  $extension File extension of the resulting file
+     * @param string $name      The cache name prefix
+     * @param string $extension File extension of the resulting file
      */
     public function loadClassCache($name = 'classes', $extension = '.php')
     {
diff --git a/core/vendor/Symfony/Component/HttpKernel/KernelEvents.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/KernelEvents.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/KernelInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/KernelInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/LICENSE b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/LICENSE
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/LICENSE
diff --git a/core/vendor/Symfony/Component/HttpKernel/Log/DebugLoggerInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/DebugLoggerInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Log/DebugLoggerInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/DebugLoggerInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Log/LoggerInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/LoggerInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Log/LoggerInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/LoggerInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Log/NullLogger.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/NullLogger.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Log/NullLogger.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/NullLogger.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
similarity index 89%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
index 5a54d62..ebf1912 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
@@ -95,7 +95,28 @@ abstract class BaseMemcacheProfilerStorage implements ProfilerStorageInterface
      */
     public function purge()
     {
-        $this->flush();
+        // delete only items from index
+        $indexName = $this->getIndexName();
+
+        $indexContent = $this->getValue($indexName);
+
+        if (!$indexContent) {
+            return false;
+        }
+
+        $profileList = explode("\n", $indexContent);
+
+        foreach ($profileList as $item) {
+            if ($item == '') {
+                continue;
+            }
+
+            if (false !== $pos = strpos($item, "\t")) {
+                $this->delete($this->getItemName(substr($item, 0, $pos)));
+            }
+        }
+
+        return $this->delete($indexName);
     }
 
     /**
@@ -164,25 +185,27 @@ abstract class BaseMemcacheProfilerStorage implements ProfilerStorageInterface
      * Store an item on the memcache server under the specified key
      *
      * @param string $key
-     * @param mixed $value
-     * @param int $expiration
+     * @param mixed  $value
+     * @param int    $expiration
      *
      * @return boolean
      */
     abstract protected function setValue($key, $value, $expiration = 0);
 
     /**
-     * Flush all existing items at the memcache server
+     * Delete item from the memcache server
+     *
+     * @param string $key
      *
      * @return boolean
      */
-    abstract protected function flush();
+    abstract protected function delete($key);
 
     /**
      * Append data to an existing item on the memcache server
      * @param string $key
      * @param string $value
-     * @param int $expiration
+     * @param int    $expiration
      *
      * @return boolean
      */
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
similarity index 89%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
index dfcf487..ebf3b5c 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
@@ -51,6 +51,16 @@ class MemcacheProfilerStorage extends BaseMemcacheProfilerStorage
     }
 
     /**
+     * Set instance of the Memcache
+     *
+     * @param Memcache $memcache
+     */
+    public function setMemcache($memcache)
+    {
+        $this->memcache = $memcache;
+    }
+
+    /**
      * {@inheritdoc}
      */
     protected function getValue($key)
@@ -69,9 +79,9 @@ class MemcacheProfilerStorage extends BaseMemcacheProfilerStorage
     /**
      * {@inheritdoc}
      */
-    protected function flush()
+    protected function delete($key)
     {
-        return $this->getMemcache()->flush();
+        return $this->getMemcache()->delete($key);
     }
 
     /**
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
similarity index 88%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
index 4b45c6b..34ca1cb 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
@@ -55,6 +55,16 @@ class MemcachedProfilerStorage extends BaseMemcacheProfilerStorage
     }
 
     /**
+     * Set instance of the Memcached
+     *
+     * @param Memcached $memcached
+     */
+    public function setMemcached($memcached)
+    {
+        $this->memcached = $memcached;
+    }
+
+    /**
      * {@inheritdoc}
      */
     protected function getValue($key)
@@ -73,9 +83,9 @@ class MemcachedProfilerStorage extends BaseMemcacheProfilerStorage
     /**
      * {@inheritdoc}
      */
-    protected function flush()
+    protected function delete($key)
     {
-        return $this->getMemcached()->flush();
+        return $this->getMemcached()->delete($key);
     }
 
     /**
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
similarity index 97%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
index 8e2bea4..551b810 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
@@ -121,9 +121,9 @@ abstract class PdoProfilerStorage implements ProfilerStorageInterface
     /**
      * Build SQL criteria to fetch records by ip and url
      *
-     * @param string $ip    The IP
-     * @param string $url   The URL
-     * @param string $limit The maximum number of tokens to return
+     * @param string $ip     The IP
+     * @param string $url    The URL
+     * @param string $limit  The maximum number of tokens to return
      * @param string $method The request method
      *
      * @return array An array with (criteria, args)
@@ -214,7 +214,7 @@ abstract class PdoProfilerStorage implements ProfilerStorageInterface
     /**
      * Reads the child profiles for the given token.
      *
-     * @param string $token The parent token
+     * @param string $token  The parent token
      * @param string $parent The parent instance
      *
      * @return array An array of Profile instance
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/Profile.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profile.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/Profile.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profile.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/Profiler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/Profiler.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
similarity index 86%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
index 67722e1..f7e5f3c 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
@@ -22,6 +22,11 @@ class RedisProfilerStorage implements ProfilerStorageInterface
 {
     const TOKEN_PREFIX = 'sf_profiler_';
 
+    const REDIS_OPT_SERIALIZER = 1;
+    const REDIS_OPT_PREFIX = 2;
+    const REDIS_SERIALIZER_NONE = 0;
+    const REDIS_SERIALIZER_PHP = 1;
+
     protected $dsn;
     protected $lifetime;
 
@@ -33,10 +38,10 @@ class RedisProfilerStorage implements ProfilerStorageInterface
     /**
      * Constructor.
      *
-     * @param string $dsn       A data source name
-     * @param string $username  Not used
-     * @param string $password  Not used
-     * @param int    $lifetime  The lifetime to use for the purge
+     * @param string $dsn      A data source name
+     * @param string $username Not used
+     * @param string $password Not used
+     * @param int    $lifetime The lifetime to use for the purge
      */
     public function __construct($dsn, $username = '', $password = '', $lifetime = 86400)
     {
@@ -51,7 +56,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
     {
         $indexName = $this->getIndexName();
 
-        if (!$indexContent = $this->getValue($indexName, Redis::SERIALIZER_NONE)) {
+        if (!$indexContent = $this->getValue($indexName, self::REDIS_SERIALIZER_NONE)) {
             return array();
         }
 
@@ -103,7 +108,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
         // delete only items from index
         $indexName = $this->getIndexName();
 
-        $indexContent = $this->getValue($indexName, Redis::SERIALIZER_NONE);
+        $indexContent = $this->getValue($indexName, self::REDIS_SERIALIZER_NONE);
 
         if (!$indexContent) {
             return false;
@@ -137,7 +142,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
             return false;
         }
 
-        $profile = $this->getValue($this->getItemName($token), Redis::SERIALIZER_PHP);
+        $profile = $this->getValue($this->getItemName($token), self::REDIS_SERIALIZER_PHP);
 
         if (false !== $profile) {
             $profile = $this->createProfileFromData($token, $profile);
@@ -162,7 +167,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
             'time'     => $profile->getTime(),
         );
 
-        if ($this->setValue($this->getItemName($profile->getToken()), $data, $this->lifetime, Redis::SERIALIZER_PHP)) {
+        if ($this->setValue($this->getItemName($profile->getToken()), $data, $this->lifetime, self::REDIS_SERIALIZER_PHP)) {
             // Add to index
             $indexName = $this->getIndexName();
 
@@ -203,7 +208,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
             $redis = new Redis;
             $redis->connect($host, $port);
 
-            $redis->setOption(Redis::OPT_PREFIX, self::TOKEN_PREFIX);
+            $redis->setOption(self::REDIS_OPT_PREFIX, self::TOKEN_PREFIX);
 
             $this->redis = $redis;
         }
@@ -211,6 +216,16 @@ class RedisProfilerStorage implements ProfilerStorageInterface
         return $this->redis;
     }
 
+    /**
+     * Set instance of the Redis
+     *
+     * @param Redis $redis
+     */
+    public function setRedis($redis)
+    {
+        $this->redis = $redis;
+    }
+
     private function createProfileFromData($token, $data, $parent = null)
     {
         $profile = new Profile($token);
@@ -233,7 +248,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
                 continue;
             }
 
-            if (!$childProfileData = $this->getValue($this->getItemName($token), Redis::SERIALIZER_PHP)) {
+            if (!$childProfileData = $this->getValue($this->getItemName($token), self::REDIS_SERIALIZER_PHP)) {
                 continue;
             }
 
@@ -296,10 +311,10 @@ class RedisProfilerStorage implements ProfilerStorageInterface
      *
      * @return mixed
      */
-    private function getValue($key, $serializer = Redis::SERIALIZER_NONE)
+    private function getValue($key, $serializer = self::REDIS_SERIALIZER_NONE)
     {
         $redis = $this->getRedis();
-        $redis->setOption(Redis::OPT_SERIALIZER, $serializer);
+        $redis->setOption(self::REDIS_OPT_SERIALIZER, $serializer);
 
         return $redis->get($key);
     }
@@ -314,10 +329,10 @@ class RedisProfilerStorage implements ProfilerStorageInterface
      *
      * @return Boolean
      */
-    private function setValue($key, $value, $expiration = 0, $serializer = Redis::SERIALIZER_NONE)
+    private function setValue($key, $value, $expiration = 0, $serializer = self::REDIS_SERIALIZER_NONE)
     {
         $redis = $this->getRedis();
-        $redis->setOption(Redis::OPT_SERIALIZER, $serializer);
+        $redis->setOption(self::REDIS_OPT_SERIALIZER, $serializer);
 
         return $redis->setex($key, $expiration, $value);
     }
@@ -334,7 +349,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
     private function appendValue($key, $value, $expiration = 0)
     {
         $redis = $this->getRedis();
-        $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
+        $redis->setOption(self::REDIS_OPT_SERIALIZER, self::REDIS_SERIALIZER_NONE);
 
         if ($redis->exists($key)) {
             $redis->append($key, $value);
diff --git a/core/vendor/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/SqliteProfilerStorage.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/README.md b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md
similarity index 79%
rename from core/vendor/Symfony/Component/HttpKernel/README.md
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md
index 1460f0e..c44d530 100644
--- a/core/vendor/Symfony/Component/HttpKernel/README.md
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md
@@ -21,7 +21,7 @@ framework:
 
 It takes a ``Request`` as an input and should return a ``Response`` as an
 output. Using this interface makes your code compatible with all frameworks
-using the Symfony2 components. And this will gives you many cool features for
+using the Symfony2 components. And this will give you many cool features for
 free.
 
 Creating a framework based on the Symfony2 components is really easy. Here is
@@ -84,18 +84,9 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit -c src/Symfony/Component/HttpKernel/
+    phpunit
 
 If you also want to run the unit tests that depend on other Symfony
-Components, declare the following environment variables before running
-PHPUnit:
-
-    export SYMFONY_EVENT_DISPATCHER=../path/to/EventDispatcher
-    export SYMFONY_HTTP_FOUNDATION=../path/to/HttpFoundation
-    export SYMFONY_DEPENDENCY_INJECTION=../path/to/DependencyInjection
-    export SYMFONY_CONSOLE=../path/to/Console
-    export SYMFONY_BROWSER_KIT=../path/to/BrowserKit
-    export SYMFONY_FINDER=../path/to/Finder
-    export SYMFONY_PROCESS=../path/to/Process
-    export SYMFONY_ROUTING=../path/to/Routing
-    export SYMFONY_CONFIG=../path/to/Config
+Components, install dev dependencies before running PHPUnit:
+
+    php composer.phar install --dev
diff --git a/core/vendor/Symfony/Component/HttpKernel/TerminableInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/TerminableInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/TerminableInterface.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/TerminableInterface.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/ClientTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/ClientTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/EventDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/EventDataCollectorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/EventDataCollectorTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/EventDataCollectorTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Debug/ContainerAwareTraceableEventDispatcherTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/ContainerAwareTraceableEventDispatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Debug/ContainerAwareTraceableEventDispatcherTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/ContainerAwareTraceableEventDispatcherTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/ErrorHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Debug/ExceptionHandlerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/ExceptionHandlerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Debug/ExceptionHandlerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/ExceptionHandlerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Debug/StopwatchEventTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/StopwatchEventTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Debug/StopwatchEventTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/StopwatchEventTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Debug/StopwatchTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/StopwatchTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Debug/StopwatchTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/StopwatchTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Exception/FlattenExceptionTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Exception/FlattenExceptionTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Exception/FlattenExceptionTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Exception/FlattenExceptionTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/hide.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/hide.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/hide.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/BaseBundle/Resources/hide.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/bar.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/bar.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/bar.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/bar.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle1Bundle/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle2Bundle/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle2Bundle/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle2Bundle/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Bundle2Bundle/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/hide.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/hide.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/hide.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ChildBundle/Resources/hide.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/FooBarBundle.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/FooBarBundle.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/FooBarBundle.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/FooBarBundle.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/BaseBundle/hide.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/BaseBundle/hide.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/BaseBundle/hide.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/BaseBundle/hide.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/ChildBundle/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/ChildBundle/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/ChildBundle/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/ChildBundle/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/FooBundle/foo.txt b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/FooBundle/foo.txt
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/FooBundle/foo.txt
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/Resources/FooBundle/foo.txt
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/TestClient.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/TestClient.php
similarity index 90%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/TestClient.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/TestClient.php
index ddab206..48ff956 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/TestClient.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/TestClient.php
@@ -19,7 +19,7 @@ class TestClient extends Client
     {
         $script = parent::getScript($request);
 
-        $script = preg_replace('/(\->register\(\);)/', "$0\nrequire_once '".__DIR__."/../TestHttpKernel.php';", $script);
+        $script = preg_replace('/(\->register\(\);)/', "$0\nrequire_once '".__DIR__."/../bootstrap.php';", $script);
 
         return $script;
     }
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/TestEventDispatcher.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/TestEventDispatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Fixtures/TestEventDispatcher.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/TestEventDispatcher.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/KernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/KernelTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Logger.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Logger.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Logger.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Logger.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/AbstractProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/AbstractProfilerStorageTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/AbstractProfilerStorageTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/AbstractProfilerStorageTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/FileProfilerStorageTest.php
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php
new file mode 100644
index 0000000..f582dff
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MemcacheProfilerStorageTest.php
@@ -0,0 +1,49 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Profiler;
+
+use Symfony\Component\HttpKernel\Profiler\MemcacheProfilerStorage;
+use Symfony\Component\HttpKernel\Tests\Profiler\Mock\MemcacheMock;
+
+class MemcacheProfilerStorageTest extends AbstractProfilerStorageTest
+{
+    protected static $storage;
+
+    protected function setUp()
+    {
+        $memcacheMock = new MemcacheMock();
+        $memcacheMock->addServer('127.0.0.1', 11211);
+
+        self::$storage = new MemcacheProfilerStorage('memcache://127.0.0.1:11211', '', '', 86400);
+        self::$storage->setMemcache($memcacheMock);
+
+        if (self::$storage) {
+            self::$storage->purge();
+        }
+    }
+
+    protected function tearDown()
+    {
+        if (self::$storage) {
+            self::$storage->purge();
+            self::$storage = false;
+        }
+    }
+
+    /**
+     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
+     */
+    protected function getStorage()
+    {
+        return self::$storage;
+    }
+}
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php
similarity index 53%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php
index 5f2f5c3..565ac35 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MemcachedProfilerStorageTest.php
@@ -12,44 +12,30 @@
 namespace Symfony\Component\HttpKernel\Tests\Profiler;
 
 use Symfony\Component\HttpKernel\Profiler\MemcachedProfilerStorage;
+use Symfony\Component\HttpKernel\Tests\Profiler\Mock\MemcachedMock;
 
-class DummyMemcachedProfilerStorage extends MemcachedProfilerStorage
-{
-    public function getMemcached()
-    {
-        return parent::getMemcached();
-    }
-}
-
-/**
- * @group memcached
- */
 class MemcachedProfilerStorageTest extends AbstractProfilerStorageTest
 {
     protected static $storage;
 
-    public static function tearDownAfterClass()
+    protected function setUp()
     {
+        $memcachedMock = new MemcachedMock();
+        $memcachedMock->addServer('127.0.0.1', 11211);
+
+        self::$storage = new MemcachedProfilerStorage('memcached://127.0.0.1:11211', '', '', 86400);
+        self::$storage->setMemcached($memcachedMock);
+
         if (self::$storage) {
             self::$storage->purge();
         }
     }
 
-    protected function setUp()
+    protected function tearDown()
     {
-        if (!extension_loaded('memcached')) {
-            $this->markTestSkipped('MemcachedProfilerStorageTest requires that the extension memcached is loaded');
-        }
-
-        self::$storage = new DummyMemcachedProfilerStorage('memcached://127.0.0.1:11211', '', '', 86400);
-        try {
-            self::$storage->getMemcached();
-        } catch (\Exception $e) {
-            $this->markTestSkipped('MemcachedProfilerStorageTest requires that there is a Memcache server present on localhost');
-        }
-
         if (self::$storage) {
             self::$storage->purge();
+            self::$storage = false;
         }
     }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
new file mode 100644
index 0000000..014f549
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
@@ -0,0 +1,260 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Profiler\Mock;
+
+/**
+ * MemcacheMock for simulating Memcache extension in tests.
+ *
+ * @author Andrej Hudec <pulzarraider@gmail.com>
+ */
+class MemcacheMock
+{
+    private $connected;
+    private $storage;
+
+    public function __construct()
+    {
+        $this->connected = false;
+        $this->storage = array();
+    }
+
+    /**
+     * Open memcached server connection
+     *
+     * @param string  $host
+     * @param integer $port
+     * @param integer $timeout
+     *
+     * @return boolean
+     */
+    public function connect($host, $port = null, $timeout = null)
+    {
+        if ('127.0.0.1' == $host && 11211 == $port) {
+            $this->connected = true;
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Open memcached server persistent connection
+     *
+     * @param string  $host
+     * @param integer $port
+     * @param integer $timeout
+     *
+     * @return boolean
+     */
+    public function pconnect($host, $port = null, $timeout = null)
+    {
+        if ('127.0.0.1' == $host && 11211 == $port) {
+            $this->connected = true;
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Add a memcached server to connection pool
+     *
+     * @param string   $host
+     * @param integer  $port
+     * @param boolean  $persistent
+     * @param integer  $weight
+     * @param integer  $timeout
+     * @param integer  $retry_interval
+     * @param boolean  $status
+     * @param callable $failure_callback
+     * @param integer  $timeoutms
+     *
+     * @return boolean
+     */
+    public function addServer($host, $port = 11211, $persistent = null, $weight = null, $timeout = null, $retry_interval = null, $status = null, $failure_callback = null, $timeoutms = null)
+    {
+        if ('127.0.0.1' == $host && 11211 == $port) {
+            $this->connected = true;
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Add an item to the server only if such key doesn't exist at the server yet.
+     *
+     * @param string  $key
+     * @param mixed   $var
+     * @param integer $flag
+     * @param integer $expire
+     *
+     * @return boolean
+     */
+    public function add($key, $var, $flag = null, $expire = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (!isset($this->storage[$key])) {
+            $this->storeData($key, $var);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Store data at the server.
+     *
+     * @param string  $key
+     * @param string  $var
+     * @param integer $flag
+     * @param integer $expire
+     *
+     * @return boolean
+     */
+    public function set($key, $var, $flag = null, $expire = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        $this->storeData($key, $var);
+
+        return true;
+    }
+
+    /**
+     * Replace value of the existing item.
+     *
+     * @param string  $key
+     * @param mixed   $var
+     * @param integer $flag
+     * @param integer $expire
+     *
+     * @return boolean
+     */
+    public function replace($key, $var, $flag = null, $expire = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            $this->storeData($key, $var);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Retrieve item from the server.
+     *
+     * @param string|array  $key
+     * @param integer|array $flags
+     *
+     * @return mixed
+     */
+    public function get($key, &$flags = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (is_array($key)) {
+            $result = array();
+            foreach ($key as $k) {
+                if (isset($this->storage[$k])) {
+                    $result[] = $this->getData($k);
+                }
+            }
+
+            return $result;
+        }
+
+        return $this->getData($key);
+    }
+
+    /**
+     * Delete item from the server
+     *
+     * @param string $key
+     *
+     * @return boolean
+     */
+    public function delete($key)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            unset($this->storage[$key]);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Flush all existing items at the server
+     *
+     * @return boolean
+     */
+    public function flush()
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        $this->storage = array();
+
+        return true;
+    }
+
+    /**
+     * Close memcached server connection
+     *
+     * @return boolean
+     */
+    public function close()
+    {
+        $this->connected = false;
+
+        return true;
+    }
+
+    private function getData($key)
+    {
+        if (isset($this->storage[$key])) {
+            return unserialize($this->storage[$key]);
+        }
+
+        return false;
+    }
+
+    private function storeData($key, $value)
+    {
+        $this->storage[$key] = serialize($value);
+
+        return true;
+    }
+}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
new file mode 100644
index 0000000..2b17d70
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
@@ -0,0 +1,225 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Profiler\Mock;
+
+/**
+ * MemcachedMock for simulating Memcached extension in tests.
+ *
+ * @author Andrej Hudec <pulzarraider@gmail.com>
+ */
+class MemcachedMock
+{
+    private $connected;
+    private $storage;
+
+    public function __construct()
+    {
+        $this->connected = false;
+        $this->storage = array();
+    }
+
+    /**
+     * Set a Memcached option
+     *
+     * @param integer $option
+     * @param mixed   $value
+     *
+     * @return boolean
+     */
+    public function setOption($option, $value)
+    {
+        return true;
+    }
+
+    /**
+     * Add a memcached server to connection pool
+     *
+     * @param string  $host
+     * @param integer $port
+     * @param integer $weight
+     *
+     * @return boolean
+     */
+    public function addServer($host, $port = 11211, $weight = 0)
+    {
+        if ('127.0.0.1' == $host && 11211 == $port) {
+            $this->connected = true;
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Add an item to the server only if such key doesn't exist at the server yet.
+     *
+     * @param string  $key
+     * @param mixed   $value
+     * @param integer $expiration
+     *
+     * @return boolean
+     */
+    public function add($key, $value, $expiration = 0)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (!isset($this->storage[$key])) {
+            $this->storeData($key, $value);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Store data at the server.
+     *
+     * @param string  $key
+     * @param mixed   $value
+     * @param integer $expiration
+     *
+     * @return boolean
+     */
+    public function set($key, $value, $expiration = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        $this->storeData($key, $value);
+
+        return true;
+    }
+
+    /**
+     * Replace value of the existing item.
+     *
+     * @param string  $key
+     * @param mixed   $value
+     * @param integer $expiration
+     *
+     * @return boolean
+     */
+    public function replace($key, $value, $expiration = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            $this->storeData($key, $value);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Retrieve item from the server.
+     *
+     * @param string   $key
+     * @param callable $cache_cb
+     * @param float    $cas_token
+     *
+     * @return boolean
+     */
+    public function get($key, $cache_cb = null, &$cas_token = null)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        return $this->getData($key);
+    }
+
+    /**
+     * Append data to an existing item
+     *
+     * @param string $key
+     * @param string $value
+     *
+     * @return boolean
+     */
+    public function append($key, $value)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            $this->storeData($key, $this->getData($key).$value);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Delete item from the server
+     *
+     * @param string $key
+     *
+     * @return boolean
+     */
+    public function delete($key)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            unset($this->storage[$key]);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Flush all existing items at the server
+     *
+     * @return boolean
+     */
+    public function flush()
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        $this->storage = array();
+
+        return true;
+    }
+
+    private function getData($key)
+    {
+        if (isset($this->storage[$key])) {
+            return unserialize($this->storage[$key]);
+        }
+
+        return false;
+    }
+
+    private function storeData($key, $value)
+    {
+        $this->storage[$key] = serialize($value);
+
+        return true;
+    }
+}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
new file mode 100644
index 0000000..b79e097
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
@@ -0,0 +1,241 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Profiler\Mock;
+
+/**
+ * RedisMock for simulating Redis extension in tests.
+ *
+ * @author Andrej Hudec <pulzarraider@gmail.com>
+ */
+class RedisMock
+{
+
+    private $connected;
+    private $storage;
+
+    public function __construct()
+    {
+        $this->connected = false;
+        $this->storage = array();
+    }
+
+    /**
+     * Add a memcached server to connection pool
+     *
+     * @param string  $host
+     * @param integer $port
+     * @param float   $timeout
+     *
+     * @return boolean
+     */
+    public function connect($host, $port = 6379, $timeout = 0)
+    {
+        if ('127.0.0.1' == $host && 6379 == $port) {
+            $this->connected = true;
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Set client option.
+     *
+     * @param integer $name
+     * @param integer $value
+     *
+     * @return boolean
+     */
+    public function setOption($name, $value)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Verify if the specified key exists.
+     *
+     * @param string $key
+     *
+     * @return boolean
+     */
+    public function exists($key)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        return isset($this->storage[$key]);
+    }
+
+    /**
+     * Store data at the server with expiration time.
+     *
+     * @param string  $key
+     * @param integer $ttl
+     * @param mixed   $value
+     *
+     * @return boolean
+     */
+    public function setex($key, $ttl, $value)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        $this->storeData($key, $value);
+
+        return true;
+    }
+
+    /**
+     * Sets an expiration time on an item.
+     *
+     * @param string  $key
+     * @param integer $ttl
+     *
+     * @return boolean
+     */
+    public function setTimeout($key, $ttl)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Retrieve item from the server.
+     *
+     * @param string $key
+     *
+     * @return boolean
+     */
+    public function get($key)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        return $this->getData($key);
+    }
+
+    /**
+     * Append data to an existing item
+     *
+     * @param string $key
+     * @param string $value
+     *
+     * @return integer Size of the value after the append.
+     */
+    public function append($key, $value)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (isset($this->storage[$key])) {
+            $this->storeData($key, $this->getData($key).$value);
+
+            return strlen($this->storage[$key]);
+        }
+
+        return false;
+    }
+
+    /**
+     * Remove specified keys.
+     *
+     * @param string|array $key
+     *
+     * @return integer
+     */
+    public function delete($key)
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        if (is_array($key)) {
+            $result = 0;
+            foreach ($key as $k) {
+                if (isset($this->storage[$k])) {
+                    unset($this->storage[$k]);
+                    ++$result;
+                }
+            }
+
+            return $result;
+        }
+
+        if (isset($this->storage[$key])) {
+            unset($this->storage[$key]);
+
+            return 1;
+        }
+
+        return 0;
+    }
+
+    /**
+     * Flush all existing items from all databases at the server.
+     *
+     * @return boolean
+     */
+    public function flushAll()
+    {
+        if (!$this->connected) {
+            return false;
+        }
+
+        $this->storage = array();
+
+        return true;
+    }
+
+    /**
+     * Close Redis server connection
+     *
+     * @return boolean
+     */
+    public function close()
+    {
+        $this->connected = false;
+
+        return true;
+    }
+
+    private function getData($key)
+    {
+        if (isset($this->storage[$key])) {
+            return unserialize($this->storage[$key]);
+        }
+
+        return false;
+    }
+
+    private function storeData($key, $value)
+    {
+        $this->storage[$key] = serialize($value);
+
+        return true;
+    }
+}
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php
similarity index 96%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php
index 310320c..4679a0e 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/MongoDbProfilerStorageTest.php
@@ -75,7 +75,7 @@ class MongoDbProfilerStorageTest extends AbstractProfilerStorageTest
         if (self::$storage) {
             self::$storage->purge();
         } else {
-            $this->markTestSkipped('MongoDbProfilerStorageTest requires then mongo PHP extennsion and a MongoDB server on localhost');
+            $this->markTestSkipped('MongoDbProfilerStorageTest requires the mongo PHP extension and a MongoDB server on localhost');
         }
     }
 }
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php
similarity index 56%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php
index 88779bc..91354ae 100644
--- a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/RedisProfilerStorageTest.php
@@ -12,14 +12,7 @@
 namespace Symfony\Component\HttpKernel\Tests\Profiler;
 
 use Symfony\Component\HttpKernel\Profiler\RedisProfilerStorage;
-
-class DummyRedisProfilerStorage extends RedisProfilerStorage
-{
-    public function getRedis()
-    {
-        return parent::getRedis();
-    }
-}
+use Symfony\Component\HttpKernel\Tests\Profiler\Mock\RedisMock;
 
 class RedisProfilerStorageTest extends AbstractProfilerStorageTest
 {
@@ -27,19 +20,14 @@ class RedisProfilerStorageTest extends AbstractProfilerStorageTest
 
     protected function setUp()
     {
-        if (!extension_loaded('redis')) {
-            $this->markTestSkipped('RedisProfilerStorageTest requires redis extension to be loaded');
-        }
+        $redisMock = new RedisMock();
+        $redisMock->connect('127.0.0.1', 6379);
 
-        self::$storage = new DummyRedisProfilerStorage('redis://127.0.0.1:6379', '', '', 86400);
-        try {
-            self::$storage->getRedis();
+        self::$storage = new RedisProfilerStorage('redis://127.0.0.1:6379', '', '', 86400);
+        self::$storage->setRedis($redisMock);
 
+        if (self::$storage) {
             self::$storage->purge();
-
-        } catch (\Exception $e) {
-            self::$storage = false;
-            $this->markTestSkipped('RedisProfilerStorageTest requires that there is a Redis server present on localhost');
         }
     }
 
@@ -47,7 +35,6 @@ class RedisProfilerStorageTest extends AbstractProfilerStorageTest
     {
         if (self::$storage) {
             self::$storage->purge();
-            self::$storage->getRedis()->close();
             self::$storage = false;
         }
     }
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/SqliteProfilerStorageTest.php
diff --git a/core/vendor/Symfony/Component/HttpKernel/Tests/TestHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/TestHttpKernel.php
similarity index 100%
rename from core/vendor/Symfony/Component/HttpKernel/Tests/TestHttpKernel.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/TestHttpKernel.php
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/bootstrap.php
similarity index 62%
copy from core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php
copy to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/bootstrap.php
index 985f1f2..24b1009 100644
--- a/core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/bootstrap.php
@@ -10,9 +10,13 @@
  */
 
 spl_autoload_register(function ($class) {
-    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Yaml')) {
-        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\Yaml')).'.php')) {
+    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\HttpKernel')) {
+        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\HttpKernel')).'.php')) {
             require_once $file;
         }
     }
 });
+
+if (file_exists($loader = __DIR__.'/../vendor/autoload.php')) {
+    require_once $loader;
+}
diff --git a/core/vendor/Symfony/Component/HttpKernel/composer.json b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
similarity index 68%
rename from core/vendor/Symfony/Component/HttpKernel/composer.json
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
index 95fb176..e8c693f 100644
--- a/core/vendor/Symfony/Component/HttpKernel/composer.json
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
@@ -16,9 +16,19 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2",
-        "symfony/event-dispatcher": "self.version",
-        "symfony/http-foundation": "self.version"
+        "php": ">=5.3.3",
+        "symfony/event-dispatcher": "2.1.*",
+        "symfony/http-foundation": "2.1.*"
+    },
+    "require-dev": {
+        "symfony/browser-kit": "2.1.*",
+        "symfony/class-loader": "2.1.*",
+        "symfony/config": "2.1.*",
+        "symfony/console": "2.1.*",
+        "symfony/dependency-injection": "2.1.*",
+        "symfony/finder": "2.1.*",
+        "symfony/process": "2.1.*",
+        "symfony/routing": "2.1.*"
     },
     "suggest": {
         "symfony/browser-kit": "self.version",
diff --git a/core/vendor/Symfony/Component/HttpKernel/phpunit.xml.dist b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist
similarity index 93%
rename from core/vendor/Symfony/Component/HttpKernel/phpunit.xml.dist
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist
index 0d881e1..dd824ac 100644
--- a/core/vendor/Symfony/Component/HttpKernel/phpunit.xml.dist
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist
@@ -21,8 +21,8 @@
         <whitelist>
             <directory>./</directory>
             <exclude>
-                <directory>./Resources</directory>
                 <directory>./Tests</directory>
+                <directory>./vendor</directory>
             </exclude>
         </whitelist>
     </filter>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/.gitignore b/core/vendor/symfony/routing/Symfony/Component/Routing/.gitignore
new file mode 100644
index 0000000..d1502b0
--- /dev/null
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/.gitignore
@@ -0,0 +1,2 @@
+vendor/
+composer.lock
diff --git a/core/vendor/Symfony/Component/Routing/Annotation/Route.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Annotation/Route.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Annotation/Route.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Annotation/Route.php
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/CHANGELOG.md b/core/vendor/symfony/routing/Symfony/Component/Routing/CHANGELOG.md
new file mode 100644
index 0000000..306708b
--- /dev/null
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/CHANGELOG.md
@@ -0,0 +1,23 @@
+CHANGELOG
+=========
+
+2.1.0
+-----
+
+ * added RequestContext::fromRequest()
+ * the UrlMatcher does not throw a \LogicException anymore when the required
+   scheme is not the current one
+ * added TraceableUrlMatcher
+ * added the possibility to define options, default values and requirements
+   for placeholders in prefix, including imported routes
+ * added RouterInterface::getRouteCollection
+ * [BC BREAK] the UrlMatcher urldecodes the route parameters only once, they
+   were decoded twice before. Note that the `urldecode()` calls have been
+   changed for a single `rawurldecode()` in order to support `+` for input
+   paths.
+ * added RouteCollection::getRoot method to retrieve the root of a
+   RouteCollection tree
+ * [BC BREAK] made RouteCollection::setParent private which could not have
+   been used anyway without creating inconsistencies
+ * [BC BREAK] RouteCollection::remove also removes a route from parent
+   collections (not only from its children)
diff --git a/core/vendor/Symfony/Component/Routing/CompiledRoute.php b/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/CompiledRoute.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php
diff --git a/core/vendor/Symfony/Component/Routing/Exception/ExceptionInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ExceptionInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Exception/ExceptionInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ExceptionInterface.php
diff --git a/core/vendor/Symfony/Component/Routing/Exception/InvalidParameterException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/InvalidParameterException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Exception/InvalidParameterException.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Exception/InvalidParameterException.php
diff --git a/core/vendor/Symfony/Component/Routing/Exception/MethodNotAllowedException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/MethodNotAllowedException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Exception/MethodNotAllowedException.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Exception/MethodNotAllowedException.php
diff --git a/core/vendor/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Exception/MissingMandatoryParametersException.php
diff --git a/core/vendor/Symfony/Component/Routing/Exception/ResourceNotFoundException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ResourceNotFoundException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Exception/ResourceNotFoundException.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ResourceNotFoundException.php
diff --git a/core/vendor/Symfony/Component/Routing/Exception/RouteNotFoundException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/RouteNotFoundException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Exception/RouteNotFoundException.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Exception/RouteNotFoundException.php
diff --git a/core/vendor/Symfony/Component/Routing/Generator/Dumper/GeneratorDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/GeneratorDumper.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Generator/Dumper/GeneratorDumper.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/GeneratorDumper.php
diff --git a/core/vendor/Symfony/Component/Routing/Generator/Dumper/GeneratorDumperInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/GeneratorDumperInterface.php
similarity index 95%
rename from core/vendor/Symfony/Component/Routing/Generator/Dumper/GeneratorDumperInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/GeneratorDumperInterface.php
index 7179af2..89a4ef3 100644
--- a/core/vendor/Symfony/Component/Routing/Generator/Dumper/GeneratorDumperInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/GeneratorDumperInterface.php
@@ -30,7 +30,7 @@ interface GeneratorDumperInterface
      *  * class:      The class name
      *  * base_class: The base class name
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string A PHP class representing the generator class
      */
diff --git a/core/vendor/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
similarity index 98%
rename from core/vendor/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
index 0edd6e9..03a0903 100644
--- a/core/vendor/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
@@ -31,7 +31,7 @@ class PhpGeneratorDumper extends GeneratorDumper
      *  * class:      The class name
      *  * base_class: The base class name
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string A PHP class representing the generator class
      *
diff --git a/core/vendor/Symfony/Component/Routing/Generator/UrlGenerator.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
similarity index 97%
rename from core/vendor/Symfony/Component/Routing/Generator/UrlGenerator.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
index f47f3e5..52ce635 100644
--- a/core/vendor/Symfony/Component/Routing/Generator/UrlGenerator.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
@@ -29,7 +29,7 @@ class UrlGenerator implements UrlGeneratorInterface
 {
     protected $context;
     protected $decodedChars = array(
-        // %2F is not valid in a URL, so we don't encode it (which is fine as the requirements explicitely allowed it)
+        // %2F is not valid in a URL, so we don't encode it (which is fine as the requirements explicitly allowed it)
         '%2F' => '/',
     );
 
@@ -135,7 +135,7 @@ class UrlGenerator implements UrlGeneratorInterface
 
         // add a query string if needed
         $extra = array_diff_key($originParameters, $variables, $defaults);
-        if ($extra && $query = http_build_query($extra)) {
+        if ($extra && $query = http_build_query($extra, '', '&')) {
             $url .= '?'.$query;
         }
 
diff --git a/core/vendor/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php
diff --git a/core/vendor/Symfony/Component/Routing/LICENSE b/core/vendor/symfony/routing/Symfony/Component/Routing/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/LICENSE
rename to core/vendor/symfony/routing/Symfony/Component/Routing/LICENSE
diff --git a/core/vendor/Symfony/Component/Routing/Loader/AnnotationClassLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
similarity index 98%
rename from core/vendor/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
index 28fa896..16c84a4 100644
--- a/core/vendor/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Routing\Loader;
 
 use Doctrine\Common\Annotations\Reader;
-use Symfony\Component\Routing\Annotation\Route as RouteAnnotation;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
@@ -194,7 +193,7 @@ abstract class AnnotationClassLoader implements LoaderInterface
     /**
      * Gets the default route name for a class method.
      *
-     * @param \ReflectionClass $class
+     * @param \ReflectionClass  $class
      * @param \ReflectionMethod $method
      *
      * @return string
diff --git a/core/vendor/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationDirectoryLoader.php
diff --git a/core/vendor/Symfony/Component/Routing/Loader/AnnotationFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationFileLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Loader/AnnotationFileLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationFileLoader.php
diff --git a/core/vendor/Symfony/Component/Routing/Loader/ClosureLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/ClosureLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Loader/ClosureLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/ClosureLoader.php
diff --git a/core/vendor/Symfony/Component/Routing/Loader/PhpFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/PhpFileLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Loader/PhpFileLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/PhpFileLoader.php
diff --git a/core/vendor/Symfony/Component/Routing/Loader/XmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
similarity index 98%
rename from core/vendor/Symfony/Component/Routing/Loader/XmlFileLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
index 8f27b03..4202dd8 100644
--- a/core/vendor/Symfony/Component/Routing/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
@@ -62,8 +62,8 @@ class XmlFileLoader extends FileLoader
      * Parses a node from a loaded XML file.
      *
      * @param RouteCollection $collection the collection to associate with the node
-     * @param DOMElement      $node the node to parse
-     * @param string          $path the path of the XML file being processed
+     * @param DOMElement      $node       the node to parse
+     * @param string          $path       the path of the XML file being processed
      * @param string          $file
      */
     protected function parseNode(RouteCollection $collection, \DOMElement $node, $path, $file)
diff --git a/core/vendor/Symfony/Component/Routing/Loader/YamlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php
similarity index 99%
rename from core/vendor/Symfony/Component/Routing/Loader/YamlFileLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php
index 1f9d711..c76cc3d 100644
--- a/core/vendor/Symfony/Component/Routing/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php
@@ -124,7 +124,7 @@ class YamlFileLoader extends FileLoader
     /**
      * Normalize route configuration.
      *
-     * @param array  $config A resource config
+     * @param array $config A resource config
      *
      * @return array
      *
diff --git a/core/vendor/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/ApacheUrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/ApacheUrlMatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Matcher/ApacheUrlMatcher.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/ApacheUrlMatcher.php
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/Dumper/MatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumper.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Matcher/Dumper/MatcherDumper.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumper.php
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
similarity index 94%
rename from core/vendor/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
index 950c396..6822f08 100644
--- a/core/vendor/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
@@ -26,7 +26,7 @@ interface MatcherDumperInterface
      *  * class:      The class name
      *  * base_class: The base class name
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string A PHP class representing the matcher class
      */
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
similarity index 99%
rename from core/vendor/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
index bc26c0c..a8e0dcb 100644
--- a/core/vendor/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
@@ -30,7 +30,7 @@ class PhpMatcherDumper extends MatcherDumper
      *  * class:      The class name
      *  * base_class: The base class name
      *
-     * @param  array  $options An array of options
+     * @param array $options An array of options
      *
      * @return string A PHP class representing the matcher class
      */
@@ -231,6 +231,7 @@ EOF;
                 goto $gotoname;
             }
 
+
 EOF;
             } else {
                 $methods = implode("', '", $methods);
@@ -240,6 +241,7 @@ EOF;
                 goto $gotoname;
             }
 
+
 EOF;
             }
         }
@@ -250,6 +252,7 @@ EOF;
                 return \$this->redirect(\$pathinfo.'/', '$name');
             }
 
+
 EOF;
         }
 
@@ -263,6 +266,7 @@ EOF;
                 return \$this->redirect(\$pathinfo, '$name', '$scheme');
             }
 
+
 EOF;
         }
 
@@ -271,7 +275,7 @@ EOF;
             $code .= sprintf("            return array_merge(\$this->mergeDefaults(\$matches, %s), array('_route' => '%s'));\n"
                 , str_replace("\n", '', var_export($compiledRoute->getDefaults(), true)), $name);
         } elseif (true === $matches) {
-            $code .= sprintf("            \$matches['_route'] = '%s';\n", $name);
+            $code .= sprintf("            \$matches['_route'] = '%s';\n\n", $name);
             $code .= "            return \$matches;\n";
         } elseif ($compiledRoute->getDefaults()) {
             $code .= sprintf("            return %s;\n", str_replace("\n", '', var_export(array_merge($compiledRoute->getDefaults(), array('_route' => $name)), true)));
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/RedirectableUrlMatcherInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcherInterface.php
similarity index 77%
rename from core/vendor/Symfony/Component/Routing/Matcher/RedirectableUrlMatcherInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcherInterface.php
index 72a2ec4..7225c81 100644
--- a/core/vendor/Symfony/Component/Routing/Matcher/RedirectableUrlMatcherInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcherInterface.php
@@ -23,9 +23,9 @@ interface RedirectableUrlMatcherInterface
     /**
      * Redirects the user to another URL.
      *
-     * @param string  $path   The path info to redirect to.
-     * @param string  $route  The route that matched
-     * @param string  $scheme The URL scheme (null to keep the current one)
+     * @param string $path   The path info to redirect to.
+     * @param string $route  The route that matched
+     * @param string $scheme The URL scheme (null to keep the current one)
      *
      * @return array An array of parameters
      *
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/UrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php
similarity index 98%
rename from core/vendor/Symfony/Component/Routing/Matcher/UrlMatcher.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php
index ded89e6..d3dd78c 100644
--- a/core/vendor/Symfony/Component/Routing/Matcher/UrlMatcher.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php
@@ -74,7 +74,7 @@ class UrlMatcher implements UrlMatcherInterface
     /**
      * Tries to match a URL with a set of routes.
      *
-     * @param  string $pathinfo The path info to be parsed (raw format, i.e. not urldecoded)
+     * @param string $pathinfo The path info to be parsed (raw format, i.e. not urldecoded)
      *
      * @return array An array of parameters
      *
diff --git a/core/vendor/Symfony/Component/Routing/Matcher/UrlMatcherInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcherInterface.php
similarity index 92%
rename from core/vendor/Symfony/Component/Routing/Matcher/UrlMatcherInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcherInterface.php
index 58c5688..afccf80 100644
--- a/core/vendor/Symfony/Component/Routing/Matcher/UrlMatcherInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcherInterface.php
@@ -30,7 +30,7 @@ interface UrlMatcherInterface extends RequestContextAwareInterface
      * If the matcher can not find information, it must throw one of the exceptions documented
      * below.
      *
-     * @param  string $pathinfo The path info to be parsed (raw format, i.e. not urldecoded)
+     * @param string $pathinfo The path info to be parsed (raw format, i.e. not urldecoded)
      *
      * @return array An array of parameters
      *
diff --git a/core/vendor/Symfony/Component/Routing/README.md b/core/vendor/symfony/routing/Symfony/Component/Routing/README.md
similarity index 78%
rename from core/vendor/Symfony/Component/Routing/README.md
rename to core/vendor/symfony/routing/Symfony/Component/Routing/README.md
index 63c398c..61504c8 100644
--- a/core/vendor/Symfony/Component/Routing/README.md
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/README.md
@@ -29,12 +29,9 @@ Resources
 
 You can run the unit tests with the following command:
 
-    phpunit -c src/Symfony/Component/Routing/
+    phpunit
 
 If you also want to run the unit tests that depend on other Symfony
-Components, declare the following environment variables before running
-PHPUnit:
+Components, install dev dependencies before running PHPUnit:
 
-    export SYMFONY_CONFIG=../path/to/Config
-    export SYMFONY_YAML=../path/to/Yaml
-    export DOCTRINE_COMMON=../path/to/doctrine-common
+    php composer.phar install --dev
diff --git a/core/vendor/Symfony/Component/Routing/RequestContext.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RequestContext.php
similarity index 99%
rename from core/vendor/Symfony/Component/Routing/RequestContext.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/RequestContext.php
index 013d942..7406b20 100644
--- a/core/vendor/Symfony/Component/Routing/RequestContext.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RequestContext.php
@@ -250,7 +250,7 @@ class RequestContext
     /**
      * Sets a parameter value.
      *
-     * @param string $name    A parameter name
+     * @param string $name      A parameter name
      * @param mixed  $parameter The parameter value
      *
      * @api
diff --git a/core/vendor/Symfony/Component/Routing/RequestContextAwareInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RequestContextAwareInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/RequestContextAwareInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/RequestContextAwareInterface.php
diff --git a/core/vendor/Symfony/Component/Routing/Route.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
similarity index 96%
rename from core/vendor/Symfony/Component/Routing/Route.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
index 05d8a74..f18b0ed 100644
--- a/core/vendor/Symfony/Component/Routing/Route.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
@@ -35,10 +35,10 @@ class Route
      *
      *  * compiler_class: A class name able to compile this route instance (RouteCompiler by default)
      *
-     * @param string $pattern       The pattern to match
-     * @param array  $defaults      An array of default parameter values
-     * @param array  $requirements  An array of requirements for parameters (regexes)
-     * @param array  $options       An array of options
+     * @param string $pattern      The pattern to match
+     * @param array  $defaults     An array of default parameter values
+     * @param array  $requirements An array of requirements for parameters (regexes)
+     * @param array  $options      An array of options
      *
      * @api
      */
@@ -314,7 +314,7 @@ class Route
     /**
      * Sets a requirement for the given key.
      *
-     * @param string $key The key
+     * @param string $key   The key
      * @param string $regex The regex
      *
      * @return Route The current Route instance
diff --git a/core/vendor/Symfony/Component/Routing/RouteCollection.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/RouteCollection.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
diff --git a/core/vendor/Symfony/Component/Routing/RouteCompiler.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php
similarity index 86%
rename from core/vendor/Symfony/Component/Routing/RouteCompiler.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php
index dc5e5e6..8910b10 100644
--- a/core/vendor/Symfony/Component/Routing/RouteCompiler.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php
@@ -26,6 +26,8 @@ class RouteCompiler implements RouteCompilerInterface
      * @param Route $route A Route instance
      *
      * @return CompiledRoute A CompiledRoute instance
+     *
+     * @throws \LogicException If a variable is referenced more than once
      */
     public function compile(Route $route)
     {
@@ -34,22 +36,26 @@ class RouteCompiler implements RouteCompilerInterface
         $tokens = array();
         $variables = array();
         $pos = 0;
-        preg_match_all('#.\{([\w\d_]+)\}#', $pattern, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
+        preg_match_all('#.\{(\w+)\}#', $pattern, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
         foreach ($matches as $match) {
             if ($text = substr($pattern, $pos, $match[0][1] - $pos)) {
                 $tokens[] = array('text', $text);
             }
-            $seps = array($pattern[$pos]);
+
             $pos = $match[0][1] + strlen($match[0][0]);
             $var = $match[1][0];
 
             if ($req = $route->getRequirement($var)) {
                 $regexp = $req;
             } else {
+                // Use the character preceding the variable as a separator
+                $separators = array($match[0][0][0]);
+
                 if ($pos !== $len) {
-                    $seps[] = $pattern[$pos];
+                    // Use the character following the variable as the separator when available
+                    $separators[] = $pattern[$pos];
                 }
-                $regexp = sprintf('[^%s]+?', preg_quote(implode('', array_unique($seps)), self::REGEX_DELIMITER));
+                $regexp = sprintf('[^%s]+', preg_quote(implode('', array_unique($separators)), self::REGEX_DELIMITER));
             }
 
             $tokens[] = array('variable', $match[0][0][0], $regexp, $var);
@@ -108,7 +114,7 @@ class RouteCompiler implements RouteCompilerInterface
             return preg_quote($token[1], self::REGEX_DELIMITER);
         } else {
             // Variable tokens
-            if (0 === $index && 0 === $firstOptional && 1 == count($tokens)) {
+            if (0 === $index && 0 === $firstOptional) {
                 // When the only token is an optional variable token, the separator is required
                 return sprintf('%s(?<%s>%s)?', preg_quote($token[1], self::REGEX_DELIMITER), $token[3], $token[2]);
             } else {
@@ -121,7 +127,7 @@ class RouteCompiler implements RouteCompilerInterface
                     $nbTokens = count($tokens);
                     if ($nbTokens - 1 == $index) {
                         // Close the optional subpatterns
-                        $regexp .= str_repeat(")?", $nbTokens - $firstOptional);
+                        $regexp .= str_repeat(")?", $nbTokens - $firstOptional - (0 === $firstOptional ? 1 : 0));
                     }
                 }
 
diff --git a/core/vendor/Symfony/Component/Routing/RouteCompilerInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompilerInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/RouteCompilerInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompilerInterface.php
diff --git a/core/vendor/Symfony/Component/Routing/Router.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Router.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
diff --git a/core/vendor/Symfony/Component/Routing/RouterInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouterInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/RouterInterface.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/RouterInterface.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Annotation/RouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/CompiledRouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/CompiledRouteTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/CompiledRouteTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/CompiledRouteTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/FooClass.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/FooClass.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/FooClass.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/AnnotatedClasses/FooClass.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/RedirectableUrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/RedirectableUrlMatcher.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/RedirectableUrlMatcher.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/RedirectableUrlMatcher.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/annotated.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/annotated.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/annotated.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/annotated.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.apache b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.apache
similarity index 79%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.apache
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.apache
index a937998..25f6060 100644
--- a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.apache
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.apache
@@ -7,17 +7,17 @@ RewriteCond %{REQUEST_URI} ^/foo/(baz|symfony)$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:foo,E=_ROUTING_bar:%1,E=_ROUTING_def:test]
 
 # bar
-RewriteCond %{REQUEST_URI} ^/bar/([^/]+?)$
+RewriteCond %{REQUEST_URI} ^/bar/([^/]+)$
 RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [NC]
 RewriteRule .* - [S=1,E=_ROUTING__allow_GET:1,E=_ROUTING__allow_HEAD:1]
-RewriteCond %{REQUEST_URI} ^/bar/([^/]+?)$
+RewriteCond %{REQUEST_URI} ^/bar/([^/]+)$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:bar,E=_ROUTING_foo:%1]
 
 # baragain
-RewriteCond %{REQUEST_URI} ^/baragain/([^/]+?)$
+RewriteCond %{REQUEST_URI} ^/baragain/([^/]+)$
 RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD)$ [NC]
 RewriteRule .* - [S=1,E=_ROUTING__allow_GET:1,E=_ROUTING__allow_POST:1,E=_ROUTING__allow_HEAD:1]
-RewriteCond %{REQUEST_URI} ^/baragain/([^/]+?)$
+RewriteCond %{REQUEST_URI} ^/baragain/([^/]+)$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:baragain,E=_ROUTING_foo:%1]
 
 # baz
@@ -35,25 +35,25 @@ RewriteCond %{REQUEST_URI} ^/test/baz3/$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:baz3]
 
 # baz4
-RewriteCond %{REQUEST_URI} ^/test/([^/]+?)$
+RewriteCond %{REQUEST_URI} ^/test/([^/]+)$
 RewriteRule .* $0/ [QSA,L,R=301]
-RewriteCond %{REQUEST_URI} ^/test/([^/]+?)/$
+RewriteCond %{REQUEST_URI} ^/test/([^/]+)/$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:baz4,E=_ROUTING_foo:%1]
 
 # baz5
-RewriteCond %{REQUEST_URI} ^/test/([^/]+?)/$
+RewriteCond %{REQUEST_URI} ^/test/([^/]+)/$
 RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [NC]
 RewriteRule .* - [S=2,E=_ROUTING__allow_GET:1,E=_ROUTING__allow_HEAD:1]
-RewriteCond %{REQUEST_URI} ^/test/([^/]+?)$
+RewriteCond %{REQUEST_URI} ^/test/([^/]+)$
 RewriteRule .* $0/ [QSA,L,R=301]
-RewriteCond %{REQUEST_URI} ^/test/([^/]+?)/$
+RewriteCond %{REQUEST_URI} ^/test/([^/]+)/$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:baz5,E=_ROUTING_foo:%1]
 
 # baz5unsafe
-RewriteCond %{REQUEST_URI} ^/testunsafe/([^/]+?)/$
+RewriteCond %{REQUEST_URI} ^/testunsafe/([^/]+)/$
 RewriteCond %{REQUEST_METHOD} !^(POST)$ [NC]
 RewriteRule .* - [S=1,E=_ROUTING__allow_POST:1]
-RewriteCond %{REQUEST_URI} ^/testunsafe/([^/]+?)/$
+RewriteCond %{REQUEST_URI} ^/testunsafe/([^/]+)/$
 RewriteRule .* app.php [QSA,L,E=_ROUTING__route:baz5unsafe,E=_ROUTING_foo:%1]
 
 # baz6
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
similarity index 85%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
index 2c764d0..53e86fa 100644
--- a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
@@ -31,23 +31,27 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
         }
 
         // bar
-        if (0 === strpos($pathinfo, '/bar') && preg_match('#^/bar/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/bar') && preg_match('#^/bar/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
                 $allow = array_merge($allow, array('GET', 'HEAD'));
                 goto not_bar;
             }
+
             $matches['_route'] = 'bar';
+
             return $matches;
         }
         not_bar:
 
         // barhead
-        if (0 === strpos($pathinfo, '/barhead') && preg_match('#^/barhead/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/barhead') && preg_match('#^/barhead/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
                 $allow = array_merge($allow, array('GET', 'HEAD'));
                 goto not_barhead;
             }
+
             $matches['_route'] = 'barhead';
+
             return $matches;
         }
         not_barhead:
@@ -68,29 +72,34 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
         }
 
         // baz4
-        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+?)/$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+)/$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'baz4';
+
             return $matches;
         }
 
         // baz5
-        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+?)/$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+)/$#s', $pathinfo, $matches)) {
             if ($this->context->getMethod() != 'POST') {
                 $allow[] = 'POST';
                 goto not_baz5;
             }
+
             $matches['_route'] = 'baz5';
+
             return $matches;
         }
         not_baz5:
 
         // baz.baz6
-        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+?)/$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+)/$#s', $pathinfo, $matches)) {
             if ($this->context->getMethod() != 'PUT') {
                 $allow[] = 'PUT';
                 goto not_bazbaz6;
             }
+
             $matches['_route'] = 'baz.baz6';
+
             return $matches;
         }
         not_bazbaz6:
@@ -103,6 +112,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
         // quoter
         if (preg_match('#^/(?<quoter>[\']+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'quoter';
+
             return $matches;
         }
 
@@ -114,14 +124,16 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
         if (0 === strpos($pathinfo, '/a')) {
             if (0 === strpos($pathinfo, '/a/b\'b')) {
                 // foo1
-                if (preg_match('#^/a/b\'b/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'foo1';
+
                     return $matches;
                 }
 
                 // bar1
-                if (preg_match('#^/a/b\'b/(?<bar>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<bar>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'bar1';
+
                     return $matches;
                 }
 
@@ -130,19 +142,22 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
             // overriden
             if (preg_match('#^/a/(?<var>.*)$#s', $pathinfo, $matches)) {
                 $matches['_route'] = 'overriden';
+
                 return $matches;
             }
 
             if (0 === strpos($pathinfo, '/a/b\'b')) {
                 // foo2
-                if (preg_match('#^/a/b\'b/(?<foo1>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<foo1>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'foo2';
+
                     return $matches;
                 }
 
                 // bar2
-                if (preg_match('#^/a/b\'b/(?<bar1>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<bar1>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'bar2';
+
                     return $matches;
                 }
 
@@ -152,7 +167,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
 
         if (0 === strpos($pathinfo, '/multi')) {
             // helloWorld
-            if (0 === strpos($pathinfo, '/multi/hello') && preg_match('#^/multi/hello(?:/(?<who>[^/]+?))?$#s', $pathinfo, $matches)) {
+            if (0 === strpos($pathinfo, '/multi/hello') && preg_match('#^/multi/hello(?:/(?<who>[^/]+))?$#s', $pathinfo, $matches)) {
                 return array_merge($this->mergeDefaults($matches, array (  'who' => 'World!',)), array('_route' => 'helloWorld'));
             }
 
@@ -169,14 +184,16 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
         }
 
         // foo3
-        if (preg_match('#^/(?<_locale>[^/]+?)/b/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (preg_match('#^/(?<_locale>[^/]+)/b/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'foo3';
+
             return $matches;
         }
 
         // bar3
-        if (preg_match('#^/(?<_locale>[^/]+?)/b/(?<bar>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (preg_match('#^/(?<_locale>[^/]+)/b/(?<bar>[^/]+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'bar3';
+
             return $matches;
         }
 
@@ -186,8 +203,9 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
         }
 
         // foo4
-        if (0 === strpos($pathinfo, '/aba') && preg_match('#^/aba/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/aba') && preg_match('#^/aba/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'foo4';
+
             return $matches;
         }
 
@@ -199,14 +217,16 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
 
             if (0 === strpos($pathinfo, '/a/b')) {
                 // b
-                if (preg_match('#^/a/b/(?<var>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b/(?<var>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'b';
+
                     return $matches;
                 }
 
                 // c
-                if (0 === strpos($pathinfo, '/a/b/c') && preg_match('#^/a/b/c/(?<var>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (0 === strpos($pathinfo, '/a/b/c') && preg_match('#^/a/b/c/(?<var>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'c';
+
                     return $matches;
                 }
 
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.apache b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.apache
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.apache
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.apache
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
similarity index 87%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
index 4b9af5c..a3c105c 100644
--- a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
@@ -31,23 +31,27 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
         }
 
         // bar
-        if (0 === strpos($pathinfo, '/bar') && preg_match('#^/bar/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/bar') && preg_match('#^/bar/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
                 $allow = array_merge($allow, array('GET', 'HEAD'));
                 goto not_bar;
             }
+
             $matches['_route'] = 'bar';
+
             return $matches;
         }
         not_bar:
 
         // barhead
-        if (0 === strpos($pathinfo, '/barhead') && preg_match('#^/barhead/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/barhead') && preg_match('#^/barhead/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
                 $allow = array_merge($allow, array('GET', 'HEAD'));
                 goto not_barhead;
             }
+
             $matches['_route'] = 'barhead';
+
             return $matches;
         }
         not_barhead:
@@ -67,36 +71,43 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
             if (substr($pathinfo, -1) !== '/') {
                 return $this->redirect($pathinfo.'/', 'baz3');
             }
+
             return array('_route' => 'baz3');
         }
 
         // baz4
-        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+?)/?$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+)/?$#s', $pathinfo, $matches)) {
             if (substr($pathinfo, -1) !== '/') {
                 return $this->redirect($pathinfo.'/', 'baz4');
             }
+
             $matches['_route'] = 'baz4';
+
             return $matches;
         }
 
         // baz5
-        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+?)/$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+)/$#s', $pathinfo, $matches)) {
             if ($this->context->getMethod() != 'POST') {
                 $allow[] = 'POST';
                 goto not_baz5;
             }
+
             $matches['_route'] = 'baz5';
+
             return $matches;
         }
         not_baz5:
 
         // baz.baz6
-        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+?)/$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/test') && preg_match('#^/test/(?<foo>[^/]+)/$#s', $pathinfo, $matches)) {
             if ($this->context->getMethod() != 'PUT') {
                 $allow[] = 'PUT';
                 goto not_bazbaz6;
             }
+
             $matches['_route'] = 'baz.baz6';
+
             return $matches;
         }
         not_bazbaz6:
@@ -109,6 +120,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
         // quoter
         if (preg_match('#^/(?<quoter>[\']+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'quoter';
+
             return $matches;
         }
 
@@ -120,14 +132,16 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
         if (0 === strpos($pathinfo, '/a')) {
             if (0 === strpos($pathinfo, '/a/b\'b')) {
                 // foo1
-                if (preg_match('#^/a/b\'b/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'foo1';
+
                     return $matches;
                 }
 
                 // bar1
-                if (preg_match('#^/a/b\'b/(?<bar>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<bar>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'bar1';
+
                     return $matches;
                 }
 
@@ -136,19 +150,22 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
             // overriden
             if (preg_match('#^/a/(?<var>.*)$#s', $pathinfo, $matches)) {
                 $matches['_route'] = 'overriden';
+
                 return $matches;
             }
 
             if (0 === strpos($pathinfo, '/a/b\'b')) {
                 // foo2
-                if (preg_match('#^/a/b\'b/(?<foo1>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<foo1>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'foo2';
+
                     return $matches;
                 }
 
                 // bar2
-                if (preg_match('#^/a/b\'b/(?<bar1>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b\'b/(?<bar1>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'bar2';
+
                     return $matches;
                 }
 
@@ -158,7 +175,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
 
         if (0 === strpos($pathinfo, '/multi')) {
             // helloWorld
-            if (0 === strpos($pathinfo, '/multi/hello') && preg_match('#^/multi/hello(?:/(?<who>[^/]+?))?$#s', $pathinfo, $matches)) {
+            if (0 === strpos($pathinfo, '/multi/hello') && preg_match('#^/multi/hello(?:/(?<who>[^/]+))?$#s', $pathinfo, $matches)) {
                 return array_merge($this->mergeDefaults($matches, array (  'who' => 'World!',)), array('_route' => 'helloWorld'));
             }
 
@@ -172,20 +189,23 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
                 if (substr($pathinfo, -1) !== '/') {
                     return $this->redirect($pathinfo.'/', 'hey');
                 }
+
                 return array('_route' => 'hey');
             }
 
         }
 
         // foo3
-        if (preg_match('#^/(?<_locale>[^/]+?)/b/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (preg_match('#^/(?<_locale>[^/]+)/b/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'foo3';
+
             return $matches;
         }
 
         // bar3
-        if (preg_match('#^/(?<_locale>[^/]+?)/b/(?<bar>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (preg_match('#^/(?<_locale>[^/]+)/b/(?<bar>[^/]+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'bar3';
+
             return $matches;
         }
 
@@ -195,8 +215,9 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
         }
 
         // foo4
-        if (0 === strpos($pathinfo, '/aba') && preg_match('#^/aba/(?<foo>[^/]+?)$#s', $pathinfo, $matches)) {
+        if (0 === strpos($pathinfo, '/aba') && preg_match('#^/aba/(?<foo>[^/]+)$#s', $pathinfo, $matches)) {
             $matches['_route'] = 'foo4';
+
             return $matches;
         }
 
@@ -208,14 +229,16 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
 
             if (0 === strpos($pathinfo, '/a/b')) {
                 // b
-                if (preg_match('#^/a/b/(?<var>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (preg_match('#^/a/b/(?<var>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'b';
+
                     return $matches;
                 }
 
                 // c
-                if (0 === strpos($pathinfo, '/a/b/c') && preg_match('#^/a/b/c/(?<var>[^/]+?)$#s', $pathinfo, $matches)) {
+                if (0 === strpos($pathinfo, '/a/b/c') && preg_match('#^/a/b/c/(?<var>[^/]+)$#s', $pathinfo, $matches)) {
                     $matches['_route'] = 'c';
+
                     return $matches;
                 }
 
@@ -228,6 +251,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
             if ($this->context->getScheme() !== 'https') {
                 return $this->redirect($pathinfo, 'secure', 'https');
             }
+
             return array('_route' => 'secure');
         }
 
@@ -236,6 +260,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
             if ($this->context->getScheme() !== 'http') {
                 return $this->redirect($pathinfo, 'nonsecure', 'http');
             }
+
             return array('_route' => 'nonsecure');
         }
 
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
similarity index 92%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
index 3373931..13ffeb9 100644
--- a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
@@ -32,8 +32,9 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
             }
 
             // dynamic
-            if (preg_match('#^/rootprefix/(?<var>[^/]+?)$#s', $pathinfo, $matches)) {
+            if (preg_match('#^/rootprefix/(?<var>[^/]+)$#s', $pathinfo, $matches)) {
                 $matches['_route'] = 'dynamic';
+
                 return $matches;
             }
 
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/empty.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/empty.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/empty.yml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/empty.yml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/foo.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/foo.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/foo.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/foo.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/foo1.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/foo1.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/foo1.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/foo1.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/incomplete.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/incomplete.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/incomplete.yml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/incomplete.yml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalid.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalid.yml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalid.yml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalidkeys.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidkeys.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalidkeys.yml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidkeys.yml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalidnode.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidnode.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalidnode.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidnode.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/nonvalidroute.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/validpattern.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/validresource.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.xml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/validresource.xml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.xml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Fixtures/validresource.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Fixtures/validresource.yml
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validresource.yml
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/AnnotationDirectoryLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationDirectoryLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/AnnotationDirectoryLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationDirectoryLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/AnnotationFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/AnnotationFileLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
similarity index 93%
rename from core/vendor/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
index e38c75a..3e9f49d 100644
--- a/core/vendor/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
@@ -118,6 +118,14 @@ class UrlMatcherTest extends \PHPUnit_Framework_TestCase
         $matcher = new UrlMatcher($collection, new RequestContext(), array());
         $this->assertEquals(array('_route' => 'bar', 'bar' => 'foo'), $matcher->match('/foo'));
         $this->assertEquals(array('_route' => 'bar', 'bar' => 'bar'), $matcher->match('/'));
+
+        // route with only optional variables
+        $collection = new RouteCollection();
+        $collection->add('bar', new Route('/{foo}/{bar}', array('foo' => 'foo', 'bar' => 'bar'), array()));
+        $matcher = new UrlMatcher($collection, new RequestContext(), array());
+        $this->assertEquals(array('_route' => 'bar', 'foo' => 'foo', 'bar' => 'bar'), $matcher->match('/'));
+        $this->assertEquals(array('_route' => 'bar', 'foo' => 'a', 'bar' => 'bar'), $matcher->match('/a'));
+        $this->assertEquals(array('_route' => 'bar', 'foo' => 'a', 'bar' => 'b'), $matcher->match('/a/b'));
     }
 
     public function testMatchWithPrefixes()
diff --git a/core/vendor/Symfony/Component/Routing/Tests/RouteCollectionTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/RouteCollectionTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
diff --git a/core/vendor/Symfony/Component/Routing/Tests/RouteCompilerTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCompilerTest.php
similarity index 59%
rename from core/vendor/Symfony/Component/Routing/Tests/RouteCompilerTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCompilerTest.php
index 7245e79..5288ca6 100644
--- a/core/vendor/Symfony/Component/Routing/Tests/RouteCompilerTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCompilerTest.php
@@ -43,51 +43,51 @@ class RouteCompilerTest extends \PHPUnit_Framework_TestCase
             array(
                 'Route with a variable',
                 array('/foo/{bar}'),
-                '/foo', '#^/foo/(?<bar>[^/]+?)$#s', array('bar'), array(
-                    array('variable', '/', '[^/]+?', 'bar'),
+                '/foo', '#^/foo/(?<bar>[^/]+)$#s', array('bar'), array(
+                    array('variable', '/', '[^/]+', 'bar'),
                     array('text', '/foo'),
                 )),
 
             array(
                 'Route with a variable that has a default value',
                 array('/foo/{bar}', array('bar' => 'bar')),
-                '/foo', '#^/foo(?:/(?<bar>[^/]+?))?$#s', array('bar'), array(
-                    array('variable', '/', '[^/]+?', 'bar'),
+                '/foo', '#^/foo(?:/(?<bar>[^/]+))?$#s', array('bar'), array(
+                    array('variable', '/', '[^/]+', 'bar'),
                     array('text', '/foo'),
                 )),
 
             array(
                 'Route with several variables',
                 array('/foo/{bar}/{foobar}'),
-                '/foo', '#^/foo/(?<bar>[^/]+?)/(?<foobar>[^/]+?)$#s', array('bar', 'foobar'), array(
-                    array('variable', '/', '[^/]+?', 'foobar'),
-                    array('variable', '/', '[^/]+?', 'bar'),
+                '/foo', '#^/foo/(?<bar>[^/]+)/(?<foobar>[^/]+)$#s', array('bar', 'foobar'), array(
+                    array('variable', '/', '[^/]+', 'foobar'),
+                    array('variable', '/', '[^/]+', 'bar'),
                     array('text', '/foo'),
                 )),
 
             array(
                 'Route with several variables that have default values',
                 array('/foo/{bar}/{foobar}', array('bar' => 'bar', 'foobar' => '')),
-                '/foo', '#^/foo(?:/(?<bar>[^/]+?)(?:/(?<foobar>[^/]+?))?)?$#s', array('bar', 'foobar'), array(
-                    array('variable', '/', '[^/]+?', 'foobar'),
-                    array('variable', '/', '[^/]+?', 'bar'),
+                '/foo', '#^/foo(?:/(?<bar>[^/]+)(?:/(?<foobar>[^/]+))?)?$#s', array('bar', 'foobar'), array(
+                    array('variable', '/', '[^/]+', 'foobar'),
+                    array('variable', '/', '[^/]+', 'bar'),
                     array('text', '/foo'),
                 )),
 
             array(
                 'Route with several variables but some of them have no default values',
                 array('/foo/{bar}/{foobar}', array('bar' => 'bar')),
-                '/foo', '#^/foo/(?<bar>[^/]+?)/(?<foobar>[^/]+?)$#s', array('bar', 'foobar'), array(
-                    array('variable', '/', '[^/]+?', 'foobar'),
-                    array('variable', '/', '[^/]+?', 'bar'),
+                '/foo', '#^/foo/(?<bar>[^/]+)/(?<foobar>[^/]+)$#s', array('bar', 'foobar'), array(
+                    array('variable', '/', '[^/]+', 'foobar'),
+                    array('variable', '/', '[^/]+', 'bar'),
                     array('text', '/foo'),
                 )),
 
             array(
                 'Route with an optional variable as the first segment',
                 array('/{bar}', array('bar' => 'bar')),
-                '', '#^/(?<bar>[^/]+?)?$#s', array('bar'), array(
-                    array('variable', '/', '[^/]+?', 'bar'),
+                '', '#^/(?<bar>[^/]+)?$#s', array('bar'), array(
+                    array('variable', '/', '[^/]+', 'bar'),
                 )),
 
             array(
@@ -96,6 +96,31 @@ class RouteCompilerTest extends \PHPUnit_Framework_TestCase
                 '', '#^/(?<bar>(foo|bar))?$#s', array('bar'), array(
                     array('variable', '/', '(foo|bar)', 'bar'),
                 )),
+
+            array(
+                'Route with only optional variables',
+                array('/{foo}/{bar}', array('foo' => 'foo', 'bar' => 'bar')),
+                '', '#^/(?<foo>[^/]+)?(?:/(?<bar>[^/]+))?$#s', array('foo', 'bar'), array(
+                    array('variable', '/', '[^/]+', 'bar'),
+                    array('variable', '/', '[^/]+', 'foo'),
+                )),
+
+            array(
+                'Route with a variable in last position',
+                array('/foo-{bar}'),
+                '/foo', '#^/foo\-(?<bar>[^\-]+)$#s', array('bar'), array(
+                array('variable', '-', '[^\-]+', 'bar'),
+                array('text', '/foo'),
+            )),
+
+            array(
+                'Route with a format',
+                array('/foo/{bar}.{_format}'),
+                '/foo', '#^/foo/(?<bar>[^/\.]+)\.(?<_format>[^\.]+)$#s', array('bar', '_format'), array(
+                array('variable', '.', '[^\.]+', '_format'),
+                array('variable', '/', '[^/\.]+', 'bar'),
+                array('text', '/foo'),
+            )),
         );
     }
 
diff --git a/core/vendor/Symfony/Component/Routing/Tests/RouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Routing/Tests/RouteTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/bootstrap.php
similarity index 63%
copy from core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php
copy to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/bootstrap.php
index 985f1f2..23303c0 100644
--- a/core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/bootstrap.php
@@ -10,9 +10,13 @@
  */
 
 spl_autoload_register(function ($class) {
-    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Yaml')) {
-        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\Yaml')).'.php')) {
+    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\Routing')) {
+        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\Routing')).'.php')) {
             require_once $file;
         }
     }
 });
+
+if (file_exists($loader = __DIR__.'/../vendor/autoload.php')) {
+    require_once $loader;
+}
diff --git a/core/vendor/Symfony/Component/Routing/composer.json b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
similarity index 74%
rename from core/vendor/Symfony/Component/Routing/composer.json
rename to core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
index fb0af2d..9b07a5a 100644
--- a/core/vendor/Symfony/Component/Routing/composer.json
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
@@ -16,11 +16,17 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
+    },
+    "require-dev": {
+        "symfony/config": "2.1.*",
+        "symfony/yaml": "2.1.*",
+        "doctrine/common": ">=2.1,<2.3-dev"
     },
     "suggest": {
         "symfony/config": "self.version",
-        "symfony/yaml": "self.version"
+        "symfony/yaml": "self.version",
+        "doctrine/common": ">=2.1,<2.3-dev"
     },
     "autoload": {
         "psr-0": { "Symfony\\Component\\Routing": "" }
diff --git a/core/vendor/Symfony/Component/Routing/phpunit.xml.dist b/core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist
similarity index 93%
rename from core/vendor/Symfony/Component/Routing/phpunit.xml.dist
rename to core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist
index f6d9ede..6d25ebf 100644
--- a/core/vendor/Symfony/Component/Routing/phpunit.xml.dist
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist
@@ -21,7 +21,7 @@
         <whitelist>
             <directory>./</directory>
             <exclude>
-                <directory>./Resources</directory>
+                <directory>./vendor</directory>
                 <directory>./Tests</directory>
             </exclude>
         </whitelist>
diff --git a/core/vendor/Symfony/Component/Yaml/CHANGELOG.md b/core/vendor/symfony/yaml/Symfony/Component/Yaml/CHANGELOG.md
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/CHANGELOG.md
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/CHANGELOG.md
diff --git a/core/vendor/Symfony/Component/Yaml/Dumper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php
similarity index 87%
rename from core/vendor/Symfony/Component/Yaml/Dumper.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php
index 97ec9d2..2338916 100644
--- a/core/vendor/Symfony/Component/Yaml/Dumper.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php
@@ -21,9 +21,9 @@ class Dumper
     /**
      * Dumps a PHP value to YAML.
      *
-     * @param  mixed   $input  The PHP value
-     * @param  integer $inline The level where you switch to inline YAML
-     * @param  integer $indent The level of indentation (used internally)
+     * @param mixed   $input  The PHP value
+     * @param integer $inline The level where you switch to inline YAML
+     * @param integer $indent The level of indentation (used internally)
      *
      * @return string  The YAML representation of the PHP value
      */
diff --git a/core/vendor/Symfony/Component/Yaml/Escaper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Escaper.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
diff --git a/core/vendor/Symfony/Component/Yaml/Exception/DumpException.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/DumpException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Exception/DumpException.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/DumpException.php
diff --git a/core/vendor/Symfony/Component/Yaml/Exception/ExceptionInterface.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ExceptionInterface.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Exception/ExceptionInterface.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ExceptionInterface.php
diff --git a/core/vendor/Symfony/Component/Yaml/Exception/ParseException.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Exception/ParseException.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php
diff --git a/core/vendor/Symfony/Component/Yaml/Inline.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
similarity index 98%
rename from core/vendor/Symfony/Component/Yaml/Inline.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
index 5933ac7..2030572 100644
--- a/core/vendor/Symfony/Component/Yaml/Inline.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
@@ -146,9 +146,9 @@ class Inline
     /**
      * Parses a scalar to a YAML string.
      *
-     * @param scalar  $scalar
-     * @param string  $delimiters
-     * @param array   $stringDelimiters
+     * @param scalar $scalar
+     * @param string $delimiters
+     * @param array  $stringDelimiters
      * @param integer &$i
      * @param Boolean $evaluate
      *
@@ -187,7 +187,7 @@ class Inline
     /**
      * Parses a quoted scalar to YAML.
      *
-     * @param string  $scalar
+     * @param string $scalar
      * @param integer &$i
      *
      * @return string A YAML string
@@ -217,7 +217,7 @@ class Inline
     /**
      * Parses a sequence to a YAML string.
      *
-     * @param string  $sequence
+     * @param string $sequence
      * @param integer &$i
      *
      * @return string A YAML string
@@ -273,7 +273,7 @@ class Inline
     /**
      * Parses a mapping to a YAML string.
      *
-     * @param string  $mapping
+     * @param string $mapping
      * @param integer &$i
      *
      * @return string A YAML string
diff --git a/core/vendor/Symfony/Component/Yaml/LICENSE b/core/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/LICENSE
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE
diff --git a/core/vendor/Symfony/Component/Yaml/Parser.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
similarity index 89%
rename from core/vendor/Symfony/Component/Yaml/Parser.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
index 0743069..76d1926 100644
--- a/core/vendor/Symfony/Component/Yaml/Parser.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
@@ -38,7 +38,7 @@ class Parser
     /**
      * Parses a YAML string to a PHP value.
      *
-     * @param  string $value A YAML string
+     * @param string $value A YAML string
      *
      * @return mixed  A PHP value
      *
@@ -159,7 +159,7 @@ class Parser
                 // hash
                 } elseif (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) {
                     // if next line is less indented or equal, then it means that the current value is null
-                    if ($this->isNextLineIndented()) {
+                    if ($this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
                         $data[$key] = null;
                     } else {
                         $c = $this->getRealCurrentLineNb() + 1;
@@ -275,7 +275,9 @@ class Parser
         if (null === $indentation) {
             $newIndent = $this->getCurrentLineIndentation();
 
-            if (!$this->isCurrentLineEmpty() && 0 == $newIndent) {
+            $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem($this->currentLine);
+
+            if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) {
                 throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
             }
         } else {
@@ -284,7 +286,15 @@ class Parser
 
         $data = array(substr($this->currentLine, $newIndent));
 
+        $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem($this->currentLine);
+
         while ($this->moveToNextLine()) {
+
+            if ($isItUnindentedCollection && !$this->isStringUnIndentedCollectionItem($this->currentLine)) {
+                $this->moveToPreviousLine();
+                break;
+            }
+
             if ($this->isCurrentLineEmpty()) {
                 if ($this->isCurrentLineBlank()) {
                     $data[] = substr($this->currentLine, $newIndent);
@@ -339,7 +349,7 @@ class Parser
     /**
      * Parses a YAML value.
      *
-     * @param  string $value A YAML value
+     * @param string $value A YAML value
      *
      * @return mixed  A PHP value
      *
@@ -380,9 +390,9 @@ class Parser
     /**
      * Parses a folded scalar.
      *
-     * @param  string  $separator   The separator that was used to begin this folded scalar (| or >)
-     * @param  string  $indicator   The indicator that was used to begin this folded scalar (+ or -)
-     * @param  integer $indentation The indentation that was used to begin this folded scalar
+     * @param string  $separator   The separator that was used to begin this folded scalar (| or >)
+     * @param string  $indicator   The indicator that was used to begin this folded scalar (+ or -)
+     * @param integer $indentation The indentation that was used to begin this folded scalar
      *
      * @return string  The text value
      */
@@ -515,7 +525,7 @@ class Parser
     /**
      * Cleanups a YAML string to be parsed.
      *
-     * @param  string $value The input YAML string
+     * @param string $value The input YAML string
      *
      * @return string A cleaned up YAML string
      */
@@ -553,4 +563,47 @@ class Parser
 
         return $value;
     }
+
+    /**
+     * Returns true if the next line starts unindented collection
+     *
+     * @return Boolean Returns true if the next line starts unindented collection, false otherwise
+     */
+    private function isNextLineUnIndentedCollection()
+    {
+        $currentIndentation = $this->getCurrentLineIndentation();
+        $notEOF = $this->moveToNextLine();
+
+        while ($notEOF && $this->isCurrentLineEmpty()) {
+            $notEOF = $this->moveToNextLine();
+        }
+
+        if (false === $notEOF) {
+            return false;
+        }
+
+        $ret = false;
+        if (
+            $this->getCurrentLineIndentation() == $currentIndentation
+            &&
+            $this->isStringUnIndentedCollectionItem($this->currentLine)
+        ) {
+            $ret = true;
+        }
+
+        $this->moveToPreviousLine();
+
+        return $ret;
+    }
+
+    /**
+     * Returns true if the string is unindented collection item
+     *
+     * @return Boolean Returns true if the string is unindented collection item, false otherwise
+     */
+    private function isStringUnIndentedCollectionItem($string)
+    {
+        return (0 === strpos($this->currentLine, '- '));
+    }
+
 }
diff --git a/core/vendor/Symfony/Component/Yaml/README.md b/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/README.md
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/DumperTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/DumperTest.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsAnchorAlias.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsAnchorAlias.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsAnchorAlias.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsAnchorAlias.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsBlockMapping.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBlockMapping.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsBlockMapping.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBlockMapping.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsDocumentSeparator.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsDocumentSeparator.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsDocumentSeparator.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsDocumentSeparator.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsErrorTests.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsErrorTests.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsErrorTests.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsErrorTests.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsFlowCollections.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsFlowCollections.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsFlowCollections.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsFlowCollections.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsFoldedScalars.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsFoldedScalars.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsFoldedScalars.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsFoldedScalars.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsNullsAndEmpties.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsNullsAndEmpties.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsNullsAndEmpties.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsNullsAndEmpties.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/escapedCharacters.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/escapedCharacters.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/escapedCharacters.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/escapedCharacters.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/index.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/index.yml
similarity index 92%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/index.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/index.yml
index a1d7f39..3216a89 100644
--- a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/index.yml
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/index.yml
@@ -15,3 +15,4 @@
 - YtsNullsAndEmpties
 - YtsSpecificationExamples
 - YtsTypeTransfers
+- unindentedCollections
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfComments.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfComments.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfComments.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfComments.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfCompact.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfCompact.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfCompact.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfCompact.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfObjects.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfObjects.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfObjects.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfObjects.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfQuotes.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfQuotes.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfQuotes.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfQuotes.yml
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfTests.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfTests.yml
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/Fixtures/sfTests.yml
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfTests.yml
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml
new file mode 100644
index 0000000..fd8ad7e
--- /dev/null
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml
@@ -0,0 +1,62 @@
+--- %YAML:1.0
+test: Unindented collection
+brief: >
+    Unindented collection
+yaml: |
+    collection:
+    - item1
+    - item2
+    - item3
+php: |
+    array('collection' => array('item1', 'item2', 'item3'))
+---
+test: Nested unindented collection (two levels)
+brief: >
+    Nested unindented collection
+yaml: |
+    collection:
+        key:
+        - a
+        - b
+        - c
+php: |
+    array('collection' => array('key' => array('a', 'b', 'c')))
+---
+test: Nested unindented collection (three levels)
+brief: >
+    Nested unindented collection
+yaml: |
+    collection:
+        key:
+            subkey:
+            - one
+            - two
+            - three
+php: |
+    array('collection' => array('key' => array('subkey' => array('one', 'two', 'three'))))
+---
+test: Key/value after unindented collection (1)
+brief: >
+    Key/value after unindented collection (1)
+yaml: |
+    collection:
+        key:
+        - a
+        - b
+        - c
+    foo: bar
+php: |
+    array('collection' => array('key' => array('a', 'b', 'c')), 'foo' => 'bar')
+---
+test: Key/value after unindented collection (at the same level)
+brief: >
+    Key/value after unindented collection
+yaml: |
+    collection:
+        key:
+        - a
+        - b
+        - c
+        foo: bar
+php: |
+    array('collection' => array('key' => array('a', 'b', 'c'), 'foo' => 'bar'))
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/InlineTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/InlineTest.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/ParserTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
similarity index 93%
rename from core/vendor/Symfony/Component/Yaml/Tests/ParserTest.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
index 98689ae..6b4e2d4 100644
--- a/core/vendor/Symfony/Component/Yaml/Tests/ParserTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
@@ -140,6 +140,26 @@ EOF
             }
         }
     }
+
+    /**
+     *
+     * @expectedException Symfony\Component\Yaml\Exception\ParseException
+     *
+     */
+    public function testUnindentedCollectionException()
+    {
+        $yaml = <<<EOF
+
+collection:
+-item1
+-item2
+-item3
+
+EOF;
+
+        $this->parser->parse($yaml);
+    }
+
 }
 
 class B
diff --git a/core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/bootstrap.php
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/Tests/bootstrap.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/bootstrap.php
diff --git a/core/vendor/Symfony/Component/Yaml/Unescaper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
similarity index 97%
rename from core/vendor/Symfony/Component/Yaml/Unescaper.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
index 807a35e..0061dfd 100644
--- a/core/vendor/Symfony/Component/Yaml/Unescaper.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
@@ -134,10 +134,10 @@ class Unescaper
      */
     private function convertEncoding($value, $to, $from)
     {
-        if (function_exists('iconv')) {
-            return iconv($from, $to, $value);
-        } elseif (function_exists('mb_convert_encoding')) {
+        if (function_exists('mb_convert_encoding')) {
             return mb_convert_encoding($value, $to, $from);
+        } elseif (function_exists('iconv')) {
+            return iconv($from, $to, $value);
         }
 
         throw new \RuntimeException('No suitable convert encoding function (install the iconv or mbstring extension).');
diff --git a/core/vendor/Symfony/Component/Yaml/Yaml.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php
similarity index 98%
rename from core/vendor/Symfony/Component/Yaml/Yaml.php
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php
index cd30b0f..29e9413 100644
--- a/core/vendor/Symfony/Component/Yaml/Yaml.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php
@@ -95,7 +95,7 @@ class Yaml
      * The dump method, when supplied with an array, will do its best
      * to convert the array into friendly YAML.
      *
-     * @param array   $array PHP array
+     * @param array   $array  PHP array
      * @param integer $inline The level where you switch to inline YAML
      *
      * @return string A YAML string representing the original PHP array
diff --git a/core/vendor/Symfony/Component/Yaml/composer.json b/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json
similarity index 96%
rename from core/vendor/Symfony/Component/Yaml/composer.json
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json
index dc87721..c2894da 100644
--- a/core/vendor/Symfony/Component/Yaml/composer.json
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json
@@ -16,7 +16,7 @@
         }
     ],
     "require": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
     },
     "autoload": {
         "psr-0": { "Symfony\\Component\\Yaml": "" }
diff --git a/core/vendor/Symfony/Component/Yaml/phpunit.xml.dist b/core/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
similarity index 100%
rename from core/vendor/Symfony/Component/Yaml/phpunit.xml.dist
rename to core/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
