JQuery .data() API in 1.6.1

Setting .data() via an object with hyphenated keys leads to inaccessible data.

HTML

<script src="http://code.jquery.com/jquery-1.6.1.js"></script>
<pre>
<h1>Testing jQuery 1.6.1 .data() API</h1>
</pre>

CSS

h1 {
    font-weight: bold;
    font-size: 1.4em;
}

h2 {
    font-weight: bold;
    font-size: 1.2em;
}

JavaScript

outElement = $('pre');
body = $('body');

function outIt(label, out) {
    outElement.append('<h2>' + label + '</h2>');

    switch (typeof out) {
    case 'undefined':
        outElement.append('&lt;undefined&gt;' + "\n");
        break;
    case 'string':
        outElement.append(out + "\n");
        break;
    default:
        var didOut = false
        $.each(out, function(key, value) {
            didOut = true;
            outElement.append(key + ': ' + value + "\n");
        });
        if (!didOut) {
            outElement.append("&lt;empty&gt;\n");
        }
        break;
    }

    outElement.append("\n");
}

outIt('Original .data()', body.data());

body.data({
    "camelBar": "camel",
    "hyphen-foo": "hyphen"
});

outIt('.data() after adding via object with hyphenated key', body.data());

$.each(['camel-bar', 'camelBar', 'hyphen-foo', 'hyphenFoo'], function(i, k) {
    outIt('Accessing ' + k, body.data(k));
});