code: def poplist(self, key, default=_absent):
          
          if key in self:
              values = self.getlist(key)
              del self._map[key]
              for node, nodekey, nodevalue in self._items:
                  if nodekey == key:
                      self._items.removenode(node)
              return values
          elif key not in self._map and default is not _absent:
              return default
          raise KeyError(key)
docs: If <key> is in the dictionary, pop it and return its list of values. If
          <key> is not in the dictionary, return <default>. KeyError is raised if
          <default> is not provided and <key> is not in the dictionary.
  
          Example:
            omd = omdict([(1,1), (1,11), (1,111), (2,2), (3,3)])
            omd.poplist(1) == [1, 11, 111]
            omd.allitems() == [(2,2), (3,3)]
            omd.poplist(2) == [2]
            omd.allitems() == [(3,3)]
  
          Raises: KeyError if <key> isn't in the dictionary and <default> isn't
            provided.
          Returns: List of <key>'s values.