'Makes a new pipeline from a list of coroutines. There must
be at least two stages.'

def __init__(self, stages):

    if (len(stages) < 2):
        raise ValueError(u'pipeline    must    have    at    least    two    stages')
    self.stages = []
    for stage in stages:
        if isinstance(stage, (list, tuple)):
            self.stages.append(stage)
        else:
            self.stages.append((stage,))
