So managed to get it working. You can assign three functions to each button, single press, shift press and prolonged press. However, it's best to assign them in reverse order so they don't overwrite. First assign a button to be the shift special button from the advanced tab in the controller settings. Then you can assign the three different functions to an individual button. First one I tried was lights, I have assigned cycle lights stages, flash lights and rain light to one button. So I started by assigning a button to rain light. Then click advanced and select an extended time, this is the time you have to hold the button down for the function to occur, and finally make sure extend input is set to on and confirm. Next I assigned the shift button press to cycle light stages. Assign the same button to cycle light stages, then click advanced and make sure usable with shift is set to yes and confirm. And finally I set flasher to a standard button press by assigning the same button to flasher. This can be done for any button apart from the shift special button.