public function call($name, $data = null, $nest = null)
    {

        //Merge data
        if (!is_null($data)) {
            $this->data = array_merge($this->data, $data);
        }

        if (!$this->exists($name, $nest)) {
            throw new ViewNotFoundException($name);
        } else {
            $data = $this->exists($name, $nest);

            $this->path = $data['path'];
            $this->engine = $data['engine'];
            $this->nest = $nest;
        }

        $nameSegments = dot($name);

        $this->name = $this->setName($nameSegments);

        return $this;
    }