public function remove($key)
    {
        $index = explode('.', $key);
        self::removeValue($this->item, $index, $err);
        
        if ($err) {
            $invalidPath = join('.', array_slice($index, 0, -1 * $err->incomplete));
            trigger_error("Unable to remove '$key': '$invalidPath' is a {$err->var}", E_USER_WARNING);
        } // @codeCoverageIgnore
        
        return $this->item;
    }