code: function (params, tokens, is_ingroup) {
  	var i = 0, url = '', value;
  
  	for (; i < tokens.length; ++i) {
  		switch (tokens[i].type) {
  			case "OptionalGroup" :
  				if (params[tokens[i].index]) {
  					url += params[tokens[i].index];
  				}
  				break;
  			case "Segment" :
  				value = params[tokens[i].key];
  				if (value) {
  					url += value;
  				} else if (is_ingroup) {
  					return '';
  				}
  				break;
  			case "Explicit" :
  				url += tokens[i].value;
  				break;
  			default:
  				console.log("Unhandled token", tokens[i]);
  		}
  	}
  
  	return url;
  }
docs: /* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
  File Name   : index.js
  Created at  : 2017-08-06
  Updated at  : 2017-09-27
  Author      : jeefo
  Purpose     :
  Description :
  _._._._._._._._._._._._._._._._._._._._._.