This is the solution I came up with. It should work with 10.1+
````
ReplacePart[list,
Rule[#, 0] & /@ First /@ SequencePosition[list, {-1, 1}]]
(* {0, 1, 0, 1, 1, 1, -1, -1, 0, 1} *)
````
The length of the `Trace` is 4. Oddly, considering its messy implementation, this is shorter than the length of the `Trace` for the solution in Titus's answer, which is 5.
````
Length@Trace@
ReplacePart[list,
Rule[#, 0] & /@ First /@ SequencePosition[list, {-1, 1}]]
Length@Trace@SequenceReplace[list, {-1, 1} :> Sequence[0, 1]]
(* 4 *)
(* 5 *)
````
The solution is also somehow faster, this might be given due to the shorter length of the `Trace`. That would mean that it scales better than that of Titus's solution.
````
ReplacePart[list,
Rule[#, 0] & /@ First /@ SequencePosition[list, {-1, 1}]] //
RepeatedTiming // First
SequenceReplace[list, {-1, 1} :> Sequence[0, 1]] //
RepeatedTiming // First
(* 0.000034 *)
(* 0.000078 *)
````
Hope you find that this helps for the version that you are on.