'Remove data from the given key.'

def remove(self, key, data=None):

    if self.unique:
        try:
            self.data.pop(key)
        except KeyError:
            return False
    else:
        node = self.data.get(key, None)
        if ((node is None) or (len(node) == 0)):
            return False
        if (data is None):
            self.data.pop(key)
            return True
        if (data not in node):
            if (len(node) == 0):
                return False
            raise ValueError(u'Data    does    not    belong    to    correct    node')
        node.remove(data)
    return True
