function findModelProperty(aControlsBindingPaths, aProperties) {
		return aProperties
		.sort(function(oProperty1, oProperty2) {
			// Temporary fix to avoid evaluating technical properties like RAP feature
			// control flags, might lead to problems if multiple value bindings exist
			// on a hidden control
			return !!oProperty2.hideFromReveal - !!oProperty1.hideFromReveal;
		})
		.filter(function(oModelProperty) {
			return aControlsBindingPaths.some(function(sBindingPath) {
				// there might be some deeper binding paths available on controls,
				// than returned by the model evaluation (e.g. navigation property paths)
				// in this case we only check if the navigation path is valid
				// unsupported: check existence of the property also in the navigation target
				return (
					sBindingPath === oModelProperty.bindingPath
						|| sBindingPath.startsWith(`${oModelProperty.bindingPath}/`)
				);
			});
		})
		.pop();
	}
Looks for a model property for a set of bindings paths

@param {string[]} aControlsBindingPaths - Array of collected binding paths
@param {object[]} aProperties - Array of Fields

@return {object|undefined} - returns first found Object with Field (Property) description, undefined if not found