protected function getFromPath(array $path, $subject)
    {
        $first = array_shift($path);
        $value = $this->applyChainForGet($first, $subject);

        if (count($path) === 0) {
            return $value;
        }

        return $this->getFromPath($path, $value);
    }
protected function getFromPath(array $path, $subject)
    {
        $first = array_shift($path);
        $value = $this->applyChainForGet($first, $subject);

        if (count($path) === 0) {
            return $value;
        }

        return $this->getFromPath($path, $value);
    }
@param array $path
@param       $subject

@return mixed