code: function visitNode(callback, node) {
      	if(typeof callback.visitNode === 'function') {
  	        var ret = callback.visitNode(node);
  	        if(ret === Visitor.BREAK || ret === Visitor.SKIP) {
  	            return ret;
  	        }
  	        if(Array.isArray(node.body)) {
  	            ret = visitNodes(callback, node.body);
  	            if(ret === Visitor.BREAK) {
  		            return ret;
  		        }
  	        }
  	        if (node.selectorBody){
  	        	visitNode(callback, node.selectorBody);
  	        }
  	        if (node.declarationBody){
  	        	visitNode(callback, node.declarationBody);
  	        }
  	        if (node.mediaList){
  	        	visitNode(callback, node.mediaList);
  	        }
  	        if (node.mediaBody){
  	        	visitNode(callback, node.mediaBody);
  	        }
  	        if (node.supportsBody){
  	        	visitNode(callback, node.supportsBody);
  	        }
  	        
  	        if(Array.isArray(node.selectors)) {
  				ret = visitNodes(callback, node.selectors);
  	            if(ret === Visitor.BREAK) {
  		            return ret;
  		        }	        	
  	        } else if(Array.isArray(node.declarations)) {
  				ret = visitNodes(callback, node.declarations);
  	            if(ret === Visitor.BREAK) {
  		            return ret;
  		        }	        	
  	        }
  	        
  	        if (node.selector){
  	        	visitNode(callback, node.selector);
  	        }
  	        if (node.declaration){
  	        	visitNode(callback, node.declaration);
  	        }
  	        if (node.property){
  	        	visitNode(callback, node.property);
  	        }
  	        if (node.propertyValue){
  	        	visitNode(callback, node.propertyValue);
  	        }
          }
      }
docs: Visits a given node with a given callback function. if the function does not implement #visitNode this function does nothing
  @param {Function} callback The visitor callback. Can optionally implement #visitNode
  @param {Object} node The current node being visited
  @param {Object} last the last node that was visited
  @returns {Number} Returns #Break or #SKIP or nothing