Where should I put my mirror?
Pyth - 19 17 15 13 bytes
Thanks to @FryAmTheEggman for saving me two bytes.
ARRGH the special case for no answer. Solved that!
e_I#jL\|cL2.:
Test Suite.
e Last element in list, this works out to longest one
_I Invariance under reverse, this detect palindrome
# Filter
jL Map join
\| By "|"
cL2 Map chop in two pieces
.:Q) Substrings. Implicit Q). ) makes it do all substrings.
05AB1E, 19 17 14 bytes
Code:
Œévy2ä'|ý©ÂQi®
Explanation:
Œ # Get all substrings of the input
é # Sort by length (shortest first)
vy # For each element...
2ä # Split into two pieces
'|ý # Join by "|"
© # Copy this into the register
 # Bifurcate, pushing a and reversed a
Q # Check if it's a palindrome
i® # If so, push that string again
# Implicit, the top element is outputted
Uses the CP-1252 encoding. Try it online!.
Python 2, 102 97 bytes
def f(s):h=len(s)/2;r=s[:h]+'|'+s[h:];return s and max(r*(r==r[::-1]),f(s[1:]),f(s[:-1]),key=len)
Rather slow and inefficient... Verify the smaller test cases on Ideone.