As I wrote on IRC, I think we can do with a simpler version of this for now:

``` python
def mark_played(self, tl_track):
    if self.consume:
        self.remove(tlid=tl_track.tlid)
    if self.random and tl_track in self._shuffled:
        self._shuffled.remove(tl_track)
```

If you need more than this for some purpose, that can be done in a future pull request, together with a description of the motivation for the change.