Cache until expiryDate
Caching is hard.


https://twitter.com/codinghorror/status/506010907021828096

Something like this should work.

{% if newsExpiration is defined %}
    {% cache until newsExpiration.expiryDate  %}
        ...
    {% endcache %}
{% else %}
    {% cache %}
        ...
    {% endcache %}
{% endif %}


You'd probably want to use an include for the body of the two cache tags to keep things DRY.