protected function findValueInMultiArray(array $path, array $reference)
    {
        // Checks path existence
        if (
            count($path) == 0
            || !isset($reference[$path[0]])
        ) {
            throw new \OutOfRangeException();
        }

        $currentElement = $reference[$path[0]];

        if (!isset($path[1])) {
            return $currentElement;
        } else if (is_array($currentElement)) {
            return $this->findValueInMultiArray(array_slice($path, 1), $currentElement);
        } else {
            throw new \OutOfRangeException();
        }
    }