'Remove an item associated with a key.
If the value is not associated with the key a ``ValueError``
will be raised.  If the key does not exist in the trie, a
``ValueError`` will be raised.'

def remove_item(self, key, value):

    key_parts = key.split('.')
    current = self._root
    self._remove_item(current, key_parts, value, index=0)
