def METHOD_NAME(self, starter_command, *commands):
    if not commands:
        try:
            starter_command, *commands = starter_command.split('|')
        except AttributeError:
            pass
    starter_command = self._parse(starter_command)
    starter = subprocess.Popen(starter_command, stdout=subprocess.PIPE)
    last_proc = reduce(self._create_pipe, map(self._parse, commands), starter)
    return proc_output(*last_proc.communicate())