code: function ( fn, ms, id, now ) {
  		ms  = ms || 10;
  		id  = id || utility.uuid( true );
  		now = ( now !== false );
  
  		// Could be valid to return false from initial execution
  		if ( now && fn() === false ) {
  			return;
  		}
  
  		// Creating repeating execution
  		utility.defer( function () {
  			var recursive = function ( fn, ms, id ) {
  				var recursive = this;
  
  				if ( fn() !== false ) {
  					utility.repeating[id] = setTimeout( function () {
  						recursive.call( recursive, fn, ms, id );
  					}, ms );
  				}
  				else {
  					delete utility.repeating[id];
  				}
  			};
  
  			recursive.call( recursive, fn, ms, id );
  		}, ms, id, true );
  
  		return id;
  	}
docs: Creates a recursive function
  
  Return false from the function to halt recursion
  
  @method repeat
  @param  {Function} fn  Function to execute repeatedly
  @param  {Number}   ms  Milliseconds to stagger the execution
  @param  {String}   id  [Optional] Timeout ID
  @param  {Boolean}  now Executes `fn` and then setup repetition, default is `true`
  @return {String}       Timeout ID