removing CallbackNameExists exception. is triggering in too many random places in our app, and we feel its more of a pain in the ass than any benefit it brings. now defaults to returning false if callback exists
Composer.Router is now smarter about binding (or NOT binding) to middle mouse clicks and <a target="_blank" ...> tags. its really frustrating when web apps bind to your middle mouse click and treat it as a left mouse click. this is a nice improvement.

also, now exporting Composer.Events in the Composer object in case addons want to implement it.
fixing shallw_array_close dependency (ie removed).
removing implementing of "Events" since its not needed.
adding new readme
Fix: calling obj.unbind() (with no args) didnt clear out the named events collection, which could have caused problems if trying to add another event of the same name after clearing.

also added a new default action: Controller.release() calls this.unbind() (removes all of the Controllers events) unless you call release with controller.release({keep_events: true}). i believe this is a more sane practice, since controllers are generally not used again after releasing them, but if you want to keep the events you *can*.
adding destroy function, returning "this" for most of the functions so you can chain stuff (if youre into that).
some readme updates (namely relational examples)
stupid whitespace issue
collections and filtercollections self-assign cids now, which can make debugging a bit easier (and why not...theyre free).
Model.set() now passes in the object that was used to set the data with
as the thirds argument to trigger('change' ...), meaning anyone
listening for hte change even can now get the data that was used to do
the update.

keep in mind that just because it's in that object doesn't necessarily
mean the data under that key was changed (if the value is the same, no
events are fired).
adding a new equality function (Composer.eq) that replaces the one taken
from underscore. There was an instance where _.eq was returning false
positives:

  {length: 330} == {length: 330, plays: 1}

The new Composer.eq seeks to be fairly false-leaning, and ignore a lot
of edge cases. ovarall, the code is a bit simpler and cleaner, but i'm
sure there is an edge case or two we left out that will break everything
for everyone...good thing this is beta. JKJKLOLOLOL so far no problems
with our highly-complex app, so i think it's working out so far.
renaming window to global, assigning global at beginning of self-running fn.
Controller.html() now accepts DOM elements as well as strings.
bugfix in new Controller.html() code that accepts a DOM element OR a string (wasnt calling refresh_elements() in the case of a string)
doing some jslint tweaks.
adding option for Collection.clear {options} called "fire_remove_events" that if true, will trigger("remove") on every model being cleared from the collection. this can also be passed itno Collection.reset for the same effect.
fixing annoying hashchange bug in IE. IE sucks becuase it creates the onhashchange global var without actually using it. wow, smart. gj guys lol. this is the one time where you CANT rely on feature-probing but *HAVE* to break everything you know about JS and provide features based on browser/version. these guys can mess anything up.
slightly changed the way the router works. added a stateless function for finding the bst matching route and implemented it in _do_route. _do_route also now takes a routes parameter, which if blank, uses this.routes (internal routing table) but otherwise will be used in place of the internal routing table. this can be useful when calling _do_route manually (not that you should be doing this =]).
Router now uses Composer.Events instead of its own pseudo event system, mainly for the purpose of having named callbacks.