code: function iterate(html, value, components, tagname, key, map) {
        var output  = '',
            segment = matchClosing(components.input, tagname, html),
            data = {};
  
        // Is it an array?
        if (Array.isArray(value)) {
          // Yes: set the output to the result of iterating through the array
          for (var i = 0, l = value.length; i < l; i++) {
            // If there is a key, then we have a simple object and
            // must construct a simple object to use as the data
            if (key) {
              data[key] = value[i];
            } else {
              data = value[i];
            }
  
            output += this.bind(segment, data, map);
          }
  
          return output;
        } else if (typeof value === 'object') {
          // We need to refine the selection now that we know we're dealing with a
          // nested object
          segment = segment.slice(components.input.length, -(tagname.length + 3));
          return output += this.bind(segment, value, map);
        }
  
        return value;
      }
docs: ### function iterate(html, value, components, tagname, key) #### @html {String} peice of HTML #### @value {Mixed} iterateable object with data #### @components {Array} result of the this.tag regexp execution #### @tagname {String} the name of the tag that we iterate on #### @key {String} the key of the data that we need to extract from the value #### @map {Object} attribute mappings  Iterate over over the supplied HTML.