getUnmatchedAutoAnimateElements( rootElement ) {

		return [].slice.call( rootElement.children ).reduce( ( result, element ) => {

			const containsAnimatedElements = element.querySelector( '[data-auto-animate-target]' );

			// The element is unmatched if
			// - It is not an auto-animate target
			// - It does not contain any auto-animate targets
			if( !element.hasAttribute( 'data-auto-animate-target' ) && !containsAnimatedElements ) {
				result.push( element );
			}

			if( element.querySelector( '[data-auto-animate-target]' ) ) {
				result = result.concat( this.getUnmatchedAutoAnimateElements( element ) );
			}

			return result;

		}, [] );

	}
Returns a all elements within the given scope that should
be considered unmatched in an auto-animate transition. If
fading of unmatched elements is turned on, these elements
will fade when going between auto-animate slides.

Note that parents of auto-animate targets are NOT considered
unmatched since fading them would break the auto-animation.

@param {HTMLElement} rootElement
@return {Array}