'Creates a key-function mapping.
The return value from the function should be either
- A tuple containing a name and stream
- A iterator of tuples containing a name and stream
Any extra arguments will be passed to the function.'

def map(self, key, func, *args, **kwargs):

    self._map.append((key, partial(func, *args, **kwargs)))
