Convert open and close to use matcher factories; clean up a few errors in their implementation.
Ditch room's set of lists in favor of generic container.