def reassemble(data):
    """
        Reverse the transformation done by calling L{received}, so as to
        provide any buffered output as input to the drain where this
        L{IDivertable} is being diverted.

        @param data: The objects which had been returned from L{ITube.received}
            which had been buffered.
        @type data: L{list}

        @return: A list of objects such that, if L{received} was called
            successively with each object in the returned list, C{tube.deliver}
            would be called successively with each object in C{data}.  This
            does not need to be exactly equal to what was originally passed in
            as long as it achieves the same effect.  Any objects which were
            buffered by the L{IDivertable} which did not yet correspond to a
            C{tube.deliver} call should be included as well.
        @rtype: L{list}
        """
