src/model.js
function(path) {
		if (typeof path === "string") path = parse(path, { startRule: "path" });
		if (!_.isObject(path)) throw new Error("Expecting string or object for path.");
		var self = this;
		this._dep.depend();

		return _.reduce(path.parts, function(target, part) {
			target = self._get(target, part.key);

			_.each(part.children, function(k) {
				if (_.isObject(k)) k = self.get(k);
				target = self._get(target, k);
			});

			return target;
		}, this.data);
	}
function(path) {
		if (typeof path === "string") path = parse(path, { startRule: "path" });
		if (!_.isObject(path)) throw new Error("Expecting string or object for path.");
		var self = this;
		this._dep.depend();

		return _.reduce(path.parts, function(target, part) {
			target = self._get(target, part.key);

			_.each(part.children, function(k) {
				if (_.isObject(k)) k = self.get(k);
				target = self._get(target, k);
			});

			return target;
		}, this.data);
	}
returns the value at path, but only looks in the data on this model