code: function (otherAtom, keyOrListOrMap) {
  				var
  					isList = isArray(keyOrListOrMap),
  					isMap = !isList && typeof keyOrListOrMap === typeObj,
  					i, key,
  					keys = isList ? keyOrListOrMap : isMap ? [] : [keyOrListOrMap],
  					map = isMap ? keyOrListOrMap : {}
  				;
  				if (isMap) {
  					for (key in map) {
  						if (hasOwn.call(map, key)) {
  							keys.push(key);
  						}
  					}
  				} else {
  					for (i = keys.length; --i >= 0;) {
  						key = keys[i];
  						map[key] = key;
  					}
  				}
  				me.each(keys, function (key) {
  					var otherKey = map[key];
  					me.on(key, function (value) {
  						otherAtom.set(otherKey, value);
  					});
  					otherAtom.on(otherKey, function (value) {
  						me.set(key, value);
  					});
  				});
  				return me;
  			}
docs: Establish two-way binding between a key or list of keys for two different atoms, so that changing a property on either atom will propagate to the other.  If a map is provided for `keyOrListOrMap`, properties on this atom may be bound to differently named properties on `otherAtom`.  Note that entangled properties will not actually be synchronized until the first change *after* entanglement.