private void BreakItTrace(List<int> substring_list, int i)
{
if (_char_list[i].split_visited <= 0) return;
if (_debug) Console.Write(i + " ");
substring_list.Add(i);
_char_list[i].split_visited--;
if (_char_list[i].split_here != true)
for (int j = 0; j < _char_list[i].neighbors.Count; j++)
BreakItTrace(substring_list, _char_list[i].neighbors[j]);
}