code: function (action, payload, args, immediate) {
          var instruction = this.pool.create(action, payload, args);
  
          // based on whether the immediate flag is set, add to the top or bottom of the instruction queue.
          (immediate ? this.pool.unshift : this.pool.push)(instruction);
  
          return instruction;
      }
docs: @private
  
  @param {String} action
  @param {Object} [payload]
  @param {Array} [args]
  @param {Boolean} [immediate]