def METHOD_NAME(self, output):
    """Find an acceptable set of actions that would change the Output's active map"""
    activeMap = self.getOutputMap(output)
    routableInputs = output.getRoutableInputList()
    # if unrouted channels are supported
    if None in routableInputs:
        # if any are currently routed, then unroute all
        for outputChannel in activeMap:
            if activeMap[outputChannel]['input'] is not None:
                print(" * Unrouting Output {}".format(output.id))
                return self.getUnrouteAllActionsForOutput(output)
        # otherwise, route the first block of the first routable input
        # (if the first one is null, the second shouldn't be)
        routableInput = routableInputs[0] or routableInputs[1]
        input = ACMInput(routableInput)
        print(" * Routing Input {} on Output {}".format(input.id, output.id))
        return self.getRouteBlockActionsForInputOutput(input, output)
    else:
        # if there is more than one routable input, route a different one
        activeInput = activeMap[str(0)]['input']
        for routableInput in routableInputs:
            if routableInput != activeInput:
                input = ACMInput(routableInput)
                print(" * Switching to Input {} on Output {}".format(input.id, output.id))
                return self.getRouteBlockActionsForInputOutput(input, output)
        # otherwise, only a single input to work with...
        input = ACMInput(activeInput)
        blockSize = input.getBlockSize()
        if blockSize < len(input.getChannelList()):
            # if the input has more than one block, route a different one
            activeBlock = activeMap[str(0)]['channel_index'] / blockSize
            print(" * Switching channels of Input {} on Output {}".format(input.id, output.id))
            return self.getRouteBlockActionsForInputOutput(input, output, blockNumber=0 if activeBlock else 1)
        elif len(input.getChannelList()) > 1 and input.getReordering():
            # if the input supports reordering, do so
            activeChannel = activeMap[str(0)]['channel_index']
            print(" * Reordering channels of Input {} on Output {}".format(input.id, output.id))
            return self.getRouteBlockActionsForInputOutput(input, output, reverse=activeChannel == 0)
        else:
            res = self.test.UNCLEAR("This test cannot run automatically as the routing constraints "
                                    "for Output {} are not currently supported by the test suite"
                                    .format(output.id))
            raise NMOSTestException(res)