public function rename($from, $to)
    {
        $arrayCopy = $this->getInternalValue();

        if (!array_key_exists($from, $arrayCopy)) {
            throw new CollectionException(sprintf('The key "%s" was not found.', $from));
        }

        $keys = array_keys($arrayCopy);
        $keys[array_search($from, $keys)] = $to;

        $this->setInternalValue(array_combine($keys, $arrayCopy));

        return $this;
    }