'D.pop(k[,d]) -> v, remove key and return corresponding value.
If key is not found, d is returned if given, otherwise
KeyError is raised.'

def pop(self, key, default=_sentinel):

    transformed = self._transform(key)
    if (default is _sentinel):
        del self._original[transformed]
        return self._data.pop(transformed)
    else:
        self._original.pop(transformed, None)
        return self._data.pop(transformed, default)
