def popone(self, key, *default):
        """Remove first of given key and return corresponding value.
        
        If key is not found, default is returned if given.
        
        >>> m = MutableMultiMap([('a', 1), ('b', 2), ('b', 3), ('c', 4)])
        >>> m.popone('b')
        2
        >>> m.items()
        [('a', 1), ('b', 3), ('c', 4)]
        >>> m.popone('b')
        3
        >>> m.popone('b')
        Traceback (most recent call last):
        ...
        KeyError: 'b'
        >>> m.popone('b', 'default')
        'default'
        
        """
        try:
            value = self[key]
        except KeyError:
            if default:
                return default[0]
            raise
        
        # Delete this one.
        self._remove_pairs([self._key_ids[self._conform_key(key)].pop(0)])
        
        return value