def METHOD_NAME(self, key, default=None, with_age=False):
    """ Return the item and remove it """
    with self.lock:
        if OrderedDict.__contains__(self, key):
            item = OrderedDict.__getitem__(self, key)
            if self.frame - item[1] < self.max_age:
                del self[key]
                if with_age:
                    return item[0], item[1]
                return item[0]
            del self[key]
        if default is None:
            raise KeyError(key)
        if with_age:
            return default, self.frame
        return default