function (tree) {
	var plugs = tree.plugins,
		dependencies = [],
		i;

	// get an array with dependency names from all plugins
	for (i in plugs) {
		plugs[i].dependencies.forEach( function (name) {
			dependencies.push( name );
		});
	}
	// search irresolvable plugins
	var missingDependencies = [];
	dependencies.forEach( function (el) {
		if (!tree.plugins[el]) {
			if (!tree.groups[el] && el !== 'wtDone') {
				missingDependencies.push( el );
			}
		}
	});
	if (missingDependencies.length) {
		return missingDependencies;
	}
	return false;
}
function (tree) {
	var plugs = tree.plugins,
		dependencies = [],
		i;

	
	for (i in plugs) {
		plugs[i].dependencies.forEach( function (name) {
			dependencies.push( name );
		});
	}
	
	var missingDependencies = [];
	dependencies.forEach( function (el) {
		if (!tree.plugins[el]) {
			if (!tree.groups[el] && el !== 'wtDone') {
				missingDependencies.push( el );
			}
		}
	});
	if (missingDependencies.length) {
		return missingDependencies;
	}
	return false;
}
function ( tree ) { var plugs = tree . plugins , dependencies = [ ] , i ; // get an array with dependency names from all plugins for ( i in plugs ) { plugs [ i ] . dependencies . forEach ( function ( name ) { dependencies . push ( name ) ; } ) ; } // search irresolvable plugins var missingDependencies = [ ] ; dependencies . forEach ( function ( el ) { if ( ! tree . plugins [ el ] ) { if ( ! tree . groups [ el ] && el !== 'wtDone' ) { missingDependencies . push ( el ) ; } } } ) ; if ( missingDependencies . length ) { return missingDependencies ; } return false ; }
---   PRIVATE METHODS   --- /*!
Detect if any plugin has an irresolvable dependency
@param  {Object} tree target tree
@return {Array}      list of missing dependencies
--- PRIVATE METHODS --- / * ! Detect if any plugin has an irresolvable dependency