public function remove($key, $remove = true)
    {
        if ($remove && $this->has($key, self::HAS_EXISTS)) {
            $key = $this->normalizeKey($key);
            unset($this->data[$key]);
        }

        return $this;
    }