code: function addLoop(that, type, stage, loopFunc, positions) {
          var stageName;
  
          checkFinalized(that, type);
  
          stageName = handleStageParameter(that, stage, type);
  
          if ('function' !== typeof loopFunc) {
              throw new TypeError('Stager.' + type + ': loopFunc must be ' +
                                  'function. Found: ' + loopFunc);
          }
  
          positions = checkPositionsParameter(positions, type);
  
          addStageToCurrentBlock(that, {
              type: type,
              id: stageName,
              cb: loopFunc
          }, positions);
  
          // Must be done after addStageToCurrentBlock is called.
          addStepsToCurrentBlock(that, that.stages[stageName].steps);
          return that;
      }
docs: ## Private Methods 
  #### addLoop
  
  Handles adding a looped stage (doLoop or loop)
  
  @param {object} that Reference to Stager object
  @param {string} type The type of loop (doLoop or loop)
  @param {string|object} stage The stage to loop
  @param {function} loopFunc The function checking the
  @param {string} positions Optional. Positions within the
  enclosing Block that this block can occupy.
  
  @return {Stager|null} this object on success, NULL on error
  
  @see Stager.loop
  @see Stager.doLoop
  
  @api private