Backbone.js Manejo de atributos que son matrices

Realmente me gusta Backbone, pero me está costando mucho hacer lo que parecen ser cosas simples. Agradezco cualquier ayuda con el siguiente ejemplo.

Tengo un modelo, Criterios, que quiero usar para almacenar el estado de algunos elementos en mi interfaz de usuario. hay un par de atributos simples y un atributo que es una matriz de ID que se utiliza para almacenar las ID de las etiquetas que el usuario ha seleccionado en la interfaz de usuario.

Entonces, creo una nueva instancia. Agrego algunos elementos a la matriz de etiquetas. Luego, quiero comenzar de nuevo, crear una nueva instancia, asignada a la misma variable. Pero, mi matriz de etiquetas continúa conteniendo información que agregué como parte de la primera instancia de Criteria.

He documentado el caso de prueba a continuación.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Test</title>
    <script src="Scripts/Libraries/jquery-1.6.1.js" type="text/javascript"></script>
    <script src="Scripts/Libraries/underscore.js" type="text/javascript"></script>
    <script src="Scripts/Libraries/backbone.js" type="text/javascript"></script>

    <script language="javascript" type="text/javascript">

        $(function () {

            // Simple model to hold some state about my UI.
            var Criteria = Backbone.Model.extend({

                defaults: {
                    "status": "Normal",
                    "priority": "Normal",
                    "tags": new Array()
                }

            });

            // Create new criteria.
            window.criteria = new Criteria();

            // The length of the tags array should be 0. PASSES
            console.log("Expect 0: Actual " + window.criteria.get("tags").length);

            // Add a tag id to the tags array.
            window.criteria.get("tags").push(5); // Tag with ID of 5.

            // The length of the tags array should be 1. PASSES
            console.log("Expect 1: Actual " + window.criteria.get("tags").length);

            // Create a new instance of criteria.
            window.criteria = new Criteria();

            // The length of the tags array should be 0. FAILS
            // CONFUSED. I thought this is now a new instance with a new set of attributes.
            // Why does the tags collection still have an item in it.
            console.log("Expect 0: Actual " + window.criteria.get("tags").length);

            // OK. So, I will call the clear method on the model. This is supposed to remove all attributes
            // from the model.
            // Then, I will create it again.
            window.criteria.clear();
            window.criteria = new Criteria();

            // The length of the tags array should be 0. FAILS. Still 1.
            console.log("Expect 0: Actual " + window.criteria.get("tags").length);

            // ARGH!
            console.log("HELP!");

        });

    </script>

</head>
<body>
    <h1>Test</h1>
    <p>Backbone test page.</p>
</body>
</html>

¿Estoy fuera de lugar aquí? ¿Estoy tratando de usar Backbone para cosas que no estaban destinadas? ¿O me estoy perdiendo algo más general en la programación javascript OO?

PD. Originalmente utilicé una colección de etiquetas de Backbone, pero eso presentaba un conjunto completamente diferente de problemas relacionados con tener un modelo de Tag referenciado en varias colecciones y cómo el método de eliminación de Backbone desarma la referencia de "colección" cuando un elemento se elimina de cualquier colección. Otro día, otro problema.