lib/Wiretree.js
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;

	// 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