code: function applyPrecompiled(template, params) {
  
    params = params || {};
  
    var applied;
  
    // template evaluation shouldn't need a callback since it doesn't involve any IO, hence text#apply blocks
    async.whilst(
      function () { return applied === undefined; },
      function (cb) {
        template.process(params, function (result) {
          applied = result;
        });
        setTimeout(cb, 1);
      },
      function (err) {
      }
    );
  
    return applied;
  }
docs: Apply parameters/functions to specified pre-compiled template.
  Used in conjunction with text#applyPrecompiled when text needs to be compiled once
  and then applied multiple times.
  
  @param {String} template: pre-compiled template
  @param {Object} params: an object containing parameter key value mapping
  @return {String} template merged with the parameters