code: function (segment) {
  
  				var ARG_PATTERN = /\((.*?):([a-zA-Z0-9_]*)\)/g;  // (:id)  , ([0-9]+:id) , ([^\/]+:id)
  				var INFINITE_PATTERN = /\(\.\.\.\)/g; // (...)
  				var INFINITE_STR = '(...)';
  
  				var obj = {
  					args: [],
  					pattern: segment
  				};
  
  				obj.pattern = obj.pattern.replace(INFINITE_PATTERN, function () {
  					obj.args.push({
  						infinite: true,
  						pattern: INFINITE_STR
  					});
  					return INFINITE_STR;
  				});
  
  				obj.pattern = obj.pattern.replace(ARG_PATTERN, function ($0, exp, name) {
  					var pattern = '(?P<' + name + '>' + (options.aliases[exp] ? options.aliases[exp] : exp) + ')';
  					obj.args.push({
  						name: name,
  						pattern: pattern
  					});
  					return pattern;
  				});
  				return obj;
  			}
docs: NEED RETURN return { args: [],                   // segment: strSegmentPattern  //    string }; args = [{name: 'strName', pattern: 'strPattern'}, {name: 'strName', pattern: 'strPattern'}];