How does one seamlessly loop an animation containing a Noise modifier? I've searched and found some ineffective "solutions" to the issue I am experiencing.

I am animating a flickering candle flame and there is probably a much easier/more effective way to do this, however, I'm extremely new to Blender and CGI in general.

I have an object that I applied my candle flame shader to and opted to use a Noise modifier in the Graph Editor to manipulate the X, Y and Z scale of said object.

Mixing in an emission shader to the object did not give the effect I was going for. I opted to add a point light behind the object and again, use a Noise modifier in the Graph Editor to manipulate the Power and Z location. I also added a low Watt point light in front of the object, to illuminate the front surface, since the light behind washed out the flame shader due to transparency. (I believe)

I've been able to closely match the power of the light to the flame "flicker" size as well.

Where I'm falling short is the seamless loop of the animation. My first and last frames are not even close so there is a stutter at the end/beginning of the animation loop.

I have tried to manually set keyframes at the start and end of the animation. (Did not work)
I have tried to use the Restrict Frame Range setting with just the Noise modifier. (Did not work)
I tried to switch from Eevee to Cycles and use the Restrict Frame Range setting with that as well. (Did not work)

I really want to stick with Eevee as the Render Engine using Blender 2.8.

I suppose the gist of all this are the questions I have.
1) Is there a more effective/more simple way to achieve this effect using Eevee?
2) Is there a way to make the loop seamless while using the Noise modifier without having to endlessly tinker with the Noise settings to align the first and last frames?

The video is here:
https://youtu.be/qjzqhZsvGBw

There is no audio since I don't have a mic yet.
To loop a noise-based animation
One approach, I can't guarantee it's the snappiest, but it has some advantages.
You could use the NLA editor, to make an action loopable, in much the same way as you would make an image tileable  in an image editing application. For an image, you might split it down the middle, swap left and right halves, and blend across the discontinuities at the center. Same here.
Here's a noise-based animation, 100 frames, which doesn't loop.


In the Graph Editor, take the curves with noise modifiers, and convert them to actual keyframes, by using Header menu  &gt; Key &gt; Sample Keyframes



Switch to a Dopesheet &gt; Action Editor window, and crack open an NLA window below it. An action should automatically have been created, which you can Push Down to the NLA editor, as a working strip.



In the NLA editor, you can ShiftA add a track. Put the cursor halfway down your strip, select it, and Right-Click menu, or Y, split the strip under the cursor.

Now you can select the halves of the strip separately, drag one of them to the spare track, and swap the halves, so the cuts are against the ends of the animation. You will have to shorten the overall length, so there's an overlap between the strips:




To get the automatic mixing in the overlap between the strips you will have to set the Auto Blend in the NLA's N panel:


This example produced a looping 86-frame animation:

.. Which can be baked into an action in its own right by using 3D View &gt; Header &gt; Object &gt; Animation &gt; Bake Action. You can reuse and adjust the loopable noise action with other objects, so long as the same properties are being animated, or even cut and paste the keyframes between channels of different types.