function _resolve(aParts, oRoot, mOptions) {
		var vRef, oContext;

		if (oRoot && (aParts[0] in oRoot)) {
			// the path consists of at least two segments
			// e.g. key "Module.namespace.function" -> function() {...}
			oContext = aParts.length > 1 ? ObjectPath.get(aParts.slice(0, -1), oRoot) : oRoot;
			vRef = oContext && oContext[aParts[aParts.length - 1]];

			if (typeof vRef === "function" && mOptions.bindContext) {
				vRef = vRef.bind(mOptions.rootContext || oContext);
			}

			return vRef;
		}

		return oNotFound;
	}
Resolve the path segments under the given root context

@param {array} aParts The path segments
@param {object} oRoot The root context
@param {object} [mOptions] Options
@param {boolean} [mOptions.bindContext] When the resolved value is a
 function, whether the resolved function is bound to a context
@param {boolean} [mOptions.rootContext] When the resolved value is a
 function and a rootContext is given, the resolved function is bound
 to this context instead of the object to which it belongs. If
 <code>mOptions.bindContext=false</code>, this option has no effect
@return {any} The resolved value. If the value can't be resolved under the
 given root context, it returns <code>oNotFound</code>.