def bend(mapping, source, context=None):
    """
    The main bending function.

    mapping: the map of benders
    source: a dict to be bent

    returns a new dict according to the provided map.
    """
    context = {} if context is None else context
    transport = Transport(source, context)
    return _bend(mapping, transport)