updateDependencyList = function(type, parsedContent, dependencyList) {
    // go through intents and capture dependency list
    (parsedContent.LUISJsonStructure[type] || []).forEach(itemOfType => {
        let srcName = itemOfType.name;
        let copySrc, copyValue;
        if (itemOfType.features) {
            (itemOfType.features || []).forEach(feature => {
                if (feature.modelName) feature = feature.modelName;
                if (feature.featureName) feature = feature.featureName;
                // find any items where this feature is the target
                let featureDependencyEx = dependencyList.filter(item => srcName == (item.value ? item.value.slice(-1)[0] : undefined));
                (featureDependencyEx || []).forEach(item => {
                    item.key = `${item.key.split('::')[0]}::${feature}`;
                    item.value.push(feature);
                })
                // find any items where this feature is the source
                featureDependencyEx = dependencyList.find(item => feature == (item.value ? item.value.slice(0)[0] : undefined));
                if (featureDependencyEx) {
                    copySrc = featureDependencyEx.key.split('::')[1];
                    copyValue = featureDependencyEx.value.slice(1);
                }
                let dependencyExists = dependencyList.find(item => item.key == `${srcName}::${feature}`);
                if (!dependencyExists) {
                    let lKey = copySrc ? `${srcName}::${copySrc}` : `${srcName}::${feature}`;
                    let lValue = [srcName, feature];
                    if (copyValue) copyValue.forEach(item => lValue.push(item));
                    dependencyList.push({
                        key : lKey,
                        value : lValue
                    })
                } else {
                    dependencyExists.key = `${dependencyExists.key.split('::')[0]}::${feature}`;
                    dependencyExists.value.push(feature);
                }
                let circularItemFound = dependencyList.find(item => item.value && item.value.slice(0)[0] == item.value.slice(-1)[0]);
                if (circularItemFound) {
                    const errorMsg = `Circular dependency found for usesFeature. ${circularItemFound.value.join(' -> ')}`;
                    const error = BuildDiagnostic({
                        message: errorMsg
                    });
                    throw (new exception(retCode.errorCode.INVALID_INPUT, error.toString(), [error]));
                }
                
            })
        }
    });
}
Helper function to update a list of dependencies for usesFeature
@param {String} type 
@param {Object} parsedContent 
@param {Object} dependencyList