On Edge, NamedNodeMap.getNamedItem('some-attr$') throws an InvalidCharacterError (suspect the $, which is used for attribute binding). This is used here - https://github.com/Polymer/lit-html/blob/master/src/lit-html.ts#L316
(Including the commit sha to have the line rendered inline)
Along with #302, there's a possible fix here: https://github.com/Polymer/lit-html/pull/344/files#diff-7548be97e171131880082c935a962f68R326
We need a regression test though.
Should not be hard to reproduce for testing. The below code does not work in Edge 16. (https://jsfiddle.net/nf4w7o92/7/)
<script type="module">
import { html, render } from 'https://unpkg.com/[email protected]/lib/lit-extended.js';
render(html`<h2 title$="${'test'}">Should render without error</h2>`, document.body);
</script>
The tests contain scenarios where attributes contain $, e.g.
The jsfiddle works fine in Edge 17 (see screenshot below). The tests work fine in Edge 15.
Maybe this bug only affects Edge 16? A regression test might be as simple as adding windows 10/microsoftedge@16 to the list of browsers to test in travis.

@justinfagnani: The issue here is Edge doesn't accept invalid XML attr names, which follow different rules than HTML's attrs:
This'll also affect the proposed .prop syntax for lit-extended. You could use trailing prop. style, since NameChar allows periods.
Adding to @csvn's test cases: https://output.jsbin.com/xaliyud/quiet:

We have test coverage of the new syntax, but it seems like Sauce is picking Edge 15 to run the tests on. I'll keep this issue open until we make sure test also pass on 16 and 17.
This issue has been resolved, we now use .getAttribute() over .attributes.getNamedItem(), which does not break in Edge.