function buildBasicMQTTSendRecvFlow(brokerOptions, inOptions, outOptions) {
    brokerOptions = brokerOptions || {};
    brokerOptions.broker = brokerOptions.broker || BROKER_HOST;
    brokerOptions.port = brokerOptions.port || BROKER_PORT;
    brokerOptions.autoConnect = String(brokerOptions.autoConnect) == "false" ? false : true;
    const broker = buildMQTTBrokerNode(brokerOptions.id, brokerOptions.name, brokerOptions.broker, brokerOptions.port, brokerOptions);
    const inNode = buildMQTTInNode(inOptions.id, inOptions.name, inOptions.broker || broker.id, inOptions.topic, inOptions, ["helper.node"]);
    const outNode = buildMQTTOutNode(outOptions.id, outOptions.name, outOptions.broker || broker.id, outOptions.topic, outOptions);
    const helper = buildNode("helper", "helper.node", "helper_node", {});
    const catchNode = buildNode("catch", "catch.node", "catch_node", {"scope": ["mqtt.in"]}, ["helper.node"]);
    return {
        nodes: {
            [broker.name]: broker,
            [inNode.name]: inNode,
            [outNode.name]: outNode,
            [helper.name]: helper,
            [catchNode.name]: catchNode,
        },
        flow: [broker, inNode, outNode, helper, catchNode]
    }
}
Builds a flow containing 2 parts.  
* 1: MQTT Out node (with broker configured).  
* 2: MQTT In node (with broker configured) --> helper node `id:helper.node`