protected function _containerSetPath(&$container, $path, $value)
    {
        $path       = $this->_normalizeArray($path);
        $pathLength = count($path);

        if (!$pathLength) {
            throw $this->_createInvalidArgumentException($this->__('Path is empty'), null, null, $container);
        }

        if ($pathLength === 1) {
            $this->_containerSet($container, $path[0], $value);

            return;
        }

        $currentSegment = array_shift($path);
        if (is_array($container)) {
            $this->_containerSetPath($container[$currentSegment], $path, $value);
        } else {
            $childContainer = $this->_containerGet($container, $currentSegment);
            $this->_containerSetPath($childContainer, $path, $value);
        }
    }