docs: function handleStageParameter(that, stage, method) {
          var tokens, id, alias;
          if ('object' === typeof stage) {
              id = stage.id;
  
              // Check only if it is already existing
              // (type checking is done later).
              if (that.stages[id]) {
                  throw new Error('Stager.' + method + ': stage is object, ' +
                                  'but a stage with the same id already ' +
                                  'exists: ' + id);
              }
  
              // If both cb and steps are missing, adds steps array,
              // and create new step, if necessary.
              if (!stage.cb && !stage.steps) {
                  stage.steps = [ id ];
                  if (!that.steps[id]) {
                      that.addStep({ id: id, cb: that.getDefaultCb() });
                  }
              }
              // If a cb property is present create a new step with that cb.
              // If a step with same id is already existing, raise an error.
              else if (stage.cb) {
                  if (that.steps[id]) {
                      throw new Error('Stager.' + method + ': stage has ' +
                                      'cb property, but a step with the same ' +
                                      'id is already defined: ' + id);
                  }
                  that.addStep({ id: id, cb: stage.cb });
                  delete stage.cb;
                  stage.steps = [ id ];
              }
              that.addStage(stage);
          }
          else if ('string' === typeof stage) {
  
              // See whether the stage id contains an alias. Throws errors.
              tokens = handleAlias(that, stage, method);
              alias = tokens.alias;
              id = tokens.id;
              // Alias must reference an existing stage (checked before).
              if (alias) {
                  that.stages[alias] = that.stages[id];
              }
              else if (!that.stages[id]) {
                  // Add the step if not existing and flag it as default.
                  if (!that.steps[id]) {
                      that.addStep(makeDefaultStep(id, that.getDefaultCb()));
                  }
                  that.addStage({
                      id: id,
                      steps: [ id ]
                  });
              }
          }
          else {
              throw new TypeError('Stager.' + method + ': stage must be ' +
                                  'string or object. Found: ' + stage);
          }
  
          return alias || id;
      }