Here's an example using <select> and mixing in user <options>s.
<polymer-element name="my-select">
<template>
<select id="select">
<option template repeat="{{options}}">{{}}</option>
</select>
<content id="c" select="option"></content>
</template>
<script>
Polymer('my-select', {
options: [ "One", "Two", "Three" ],
ready: function() {
var options = this.$.c.getDistributedNodes();
[].forEach.call(options, function(opt, i) {
this.$.select.appendChild(opt);
}.bind(this));
}
});
</script>
</polymer-element>
<my-select>
<option>User option</option>
<option>User option 2</option>
<option>User option 3</option>
</my-select>