code: function forEach(data, task, callback) {
  
  		var wrapTask,
  		    isArray,
  		    subject,
  		    test,
  		    len,
  		    i;
  
  		isArray = Array.isArray(data);
  		i = -1;
  
  		if (isArray) {
  			subject = data;
  
  			wrapTask = function wrapTask(next) {
  				task(subject[i], i, next);
  			};
  		} else {
  			subject = Bound.Object.dissect(data);
  
  			wrapTask = function wrapTask(next) {
  				task(subject[i].value, subject[i].key, next);
  			};
  		}
  
  		len = subject.length;
  		test = function test() {
  			return ++i < len;
  		};
  
  		return Blast.Collection.Function['while'](test, wrapTask, callback);
  	}
docs: Do `task` for each entry in data serially
  
  @author   Jelle De Loecker   <jelle@kipdola.be>
  @since    0.1.4
  @version  0.1.4
  
  @param    {Function}   test
  @param    {Function}   task
  @param    {Function}   callback
  
  @return   {Object}